# socket编程 # OSI五层模型 # 1、物理层 通过光纤,双绞线,无线电波等将不同的计算机进行连接,并传递电信号(010101) # 2、数据链路层 对电信号进行分组,使其有意义,遵循的是以太网协议(ethernet),用于标识不同主机的Mac地址 # 以太网协议规定数据包必须分成两部分,一部分是报头(源Mac,目标Mac),一个是数据部分 。基于arp协议的广播方式进行通信 (局域网) # 3、网络层 遵循IP协议,作用是标识不同网络 源Ip-目标ip与子网掩码进行计算,算出是否是一个网段,不在一个网段,就将数据包发送给网关,由网关转发其目标Ip的网段 # 4、传输层 遵循tcp udp协议,确定端口号,并与网络层的ip进行绑定,标识了对应的应用程序 # 5、应用层 打开应用软件,监听端口,并与ip地址相绑定,接收或发送信息 # 百度百科OSI七层模型 # 应用层 # 网络服务与最终用户的一个接口。 # 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP # 表示层 # 数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层) # 格式有,JPEG、ASCll、DECOIC、加密格式等 # 会话层 # 建立、管理、终止会话。(在五层模型里面已经合并到了应用层) # 对应主机进程,指本地主机与远程主机正在进行的会话 # 传输层 # 定义传输数据的协议端口号,以及流控和差错校验。 # 协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层 # 网络层 # 进行逻辑地址寻址,实现不同网络之间的路径选择。 # 协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP # 数据链路层 # 建立逻辑连接、进行硬件地址寻址、差错校验 [2] 等功能。(由底层网络定义协议) # 将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。 # 物理层 # 建立、维护、断开物理连接。(由底层网络定义协议) # socket 在应用层与转输层之间,我们只需要遵循socket的规定去编程,写出的程序自然是遵循tcp udp协议的