最后更新:2022-02-24 14:52:24 手机定位技术交流文章
OSI网络七层模型:(Open System Interconnection),译为“开放式系统互联”
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
TCP/IP对 OSI 进行了简化,合并了一些层,最终只保留了 4 层,从下到上分别是接口层、网络层、传输层和应用层,这就是大名鼎鼎的 TCP/IP 模型
socket 站在传输层的基础
本地进程通信
网络进程通信:三元组(IP地址、协议、端口)传输层的协议+端口表示主机中进程,再加上IP就可以表示网络进程,进一步可以网络交互
Sock_Stream: 连接(传输+校验)http
sock_Dgram: 无连接(只管传输,不校验)qq视频语音,缺失不影响正常解析,只会出现噪音噪点
应用层:HTTP,FTP,SMTP,DNS,Telnet
传输层:socket基于TCP / UDP(传输控制协议:提供点对点的连接:封装、定址、传输、路由,目的地如何接受)三个数据包(握手)
网络层:IP,ICMP,OSPF
接口层:SLIP,PPP,MTU
每一抽象层建立在低一层提供的服务上,并为高一层提供服务
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接,客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路等正确无误,为数据的传输开辟通道


MAC 地址是 Media Access Control Address 的缩写,直译为“媒体访问控制地址”,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address)。
Windows 下的 socket 程序和 Linux 思路相同,但细节有所差别:
Windows 下的 socket 程序依赖 Winsock.dll 或 ws2_32.dll,必须提前加载。DLL 有两种加载方式,请查看:动态链接库DLL的加载
Linux 使用“文件描述符”的概念,而 Windows 使用“文件句柄”的概念;Linux 不区分 socket 文件和普通文件,而 Windows 区分;Linux 下 socket() 函数的返回值为 int 类型,而 Windows 下为 SOCKET 类型,也就是句柄。
Linux 下使用 read() / write() 函数读写,而 Windows 下使用 recv() / send() 函数发送和接收。
关闭 socket 时,Linux 使用 close() 函数,而 Windows 使用 closesocket() 函数。
linux server
client
本文由 在线网速测试 整理编辑,转载请注明出处。