阶段小结
arp协议 :
1.这是一个通过ip找mac地址的协议
2.由于有了socket,用户在使用网络的时候,只需要关心对方用户的ip地址就可以了
3.如果用户即将和这个ip进行通信,那么还需要知道它的mac地址
4.这个时候就需要由你的机器发起一个arp请求
5.由交换机进行广播
6.对应的机器会回应这个arp请求
7.通过交换机单播发给你的机器
tcp协议和udp协议的特点?
1.tcp
面向连接的可靠的流式传输 适合传输比较大的文件,对稳定性要求比较高的
2.udp
无连接的 快速 但不可靠 适合传输对效率要求比较高的短消息
4层交换机
4层就是osi协议中的第4层,传输层
这一层封装的是端口的信息和tcp协议以及udp协议
所以4层交换机就是可以直接识别传输层协议和端口信息的机器
能够实现信息输出直接到端口
osi五层协议
应用层 http https ftp smtp
(socket)
传输层 tcp/udp协议 端口 4层交换机\4层路由器
网络层 ipv4/ipv6协议 ip 路由器\三层交换机
数据链路层 arp协议 mac地址 网卡\交换机
物理层 网线
什么是socket : 网络协议的大接口,帮助我们完成网络传输过程中的osi4层以及一下信息的封装
tcp协议 : 要先建立连接 占线 用socketserver解决
udp协议: 不需要建立连接 且可同时和多个客户端进行交互
socketserver 实现了并发的socket tcp server
黏包现象怎么产生的 :
首先,我们发出的信息不是立即通过网络传送到另一端
而是我们发到操作系统的缓存中,
tcp协议首先流式传输无边界,第二是可靠所以每一条数据都有回执
那么为了节省网络上延迟的时间
连续发送出的多个短信息就会黏在一起
由发送端的缓存发送除去,所以接收到的就是黏在一起的数据了
发送端发送的消息也不是直接发送到对面的应用中
而是发到了对方操作系统的缓存中
如果连续发送的数据在对方的缓存中没有被及时取走
那么也会发生黏包现象
如何解决黏包
自定义协议
先发送即将发送数据的长度,然后再发送数据
先接收数据的长度,再根据接收的长度接收数据
用到了struct模块,来控制第一次发送数据长度的这条信息的长度