【内容】
【补充】
【内容】
- tcp和udp的区别
tcp | udp | |
---|---|---|
连接 | TCP面向连接(如打电话要先拨号建立连接) | UDP是无连接的,即发送数据之前不需要建立连接 |
服务的可靠性 | 无差错,不丢失,不重复,且按序到达 | 不保证可靠交付 |
实时性 | 实时性低 | 实时性高,适合高速率的有效性传输 |
传播方式 | 因为面向连接,因此1-1 | 一对多,多对一,多对多 |
linux流程实现 |
tcp实现可靠传输的手段:校验和,重传控制,序号标识,滑动窗口、确认应答
- linux实现tcp和udp的步骤
【tcp】
server:socket(创建套接字)–setsockopt(设置套接字端口的属性)–bind(将ip和端口进行绑定)–listen(开启监听)–accpet(接收客户端的连接)–send、recv(收发数据)–关闭连接-关闭监听
client:socket–setsockopt–bind-connect(连接服务器)–send、recv–关闭连接
【udp】
server:socket–setsockopt–bind–recvfrom(循环接收数据)
client:socket–setsockopt–bind–sendto
- 三次握手四次挥手
【@深信服 大数据岗】
客户端最后发送自己关闭自己的信号的时候,会等待两个最大生存时间(2Msl)
保证在这个时间内部再从服务端受到任何数据了,才会关闭。
目的:其实是为客户端着想,如果最后的ack=W+1被断掉了,没有传输到服务端,服务端会认为客户端没有收到自己的上一条“客户端,你可以退下了”的指令,将重新发送一条,但是读端已经关闭,导致服务端永远收不到回应。因此需要客户端需要等一等。