目录
udp的socket 客户端-服务器
要想了解封装先了解数据的组织过程:
1.假设主机a给b发送hello,经过应用层先根据应用层协议,将他转换成约定的字符串(应用层协议报文),接下来交给传输层(经过操作系统内核调用系统api,socket).
2.典型的传输层协议:tcp协议,tcp报头包含源端口,目的端口,传输层除了报头部分(加工)剩余就是载荷部分
3.典型的网络层协议:ip协议,主要要源ip,目的ip
4.数据链路层协议典型就是以太网(以太最初其实表示介质,既包含链路又包含物理层),帧头包含源mac地址,目的mac地址,帧尾主要是校验和
5.经过物理层设备(网卡)将上述数据变换成bit流,转换成光信号/电信号传输
上述数据从上到下,层层添加信息的过程,就成为封装(包快递)
分用就是封装的逆过程(拆快递)
6.物理层:
接收方的网卡这样的硬件将信号转换成二进制bit数据,由以太网协议负责解析,交给数据链路层
7.数据链路层
由以太网协议,去掉帧头和帧尾,取出载荷部分,把取出的载荷交给网络层
8.网络层:
由ip协议去掉ip报头得到载荷部分,载荷部分交给传输层
9.传输层:
tcp协议去掉tcp报头,载荷部分交给应用层
10.应用层:
应用层解析取出里面信息显示在界面上
就是研究如何写代码完成网络编程
Socket套接字,操作系统给应用层提供的api(应用层和传输层之间),网络传输层中最著名的就是tcp和udp协议
1.有连接相当于打电话的过程,双方通信建立好连接,才能交互数据,a打给b,b接听才能通话
无连接相当于发短信过程,直接一发就过去了
2.可靠传输并不是100%能收到数据,而是a能够知道b是不是收到数据
3.字节流类似于io操作,数据报是新的数据单位
4.全双工:一个通道,双向通信
接下文: