socket编程

# 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协议的
原文地址:https://www.cnblogs.com/dangrui0725/p/9477878.html