TCP/IP协议

一、TCP和UDP(传输层协议

1、TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网间协议),是一个工业标准协议集,是为广域网(WAN)设计的。

2、UDP(User Data Protocol,用户数据报协议),不可靠传输,无需连接。

3、区别

1)基于连接与无连接

2)TCP要求系统资源较多,UDP较少

3)UDP程序结构较简单

4)字节流模式(TCP)与数据报模式(UDP)

5)TCP保证数据正确性,UDP可能丢包

6)TCP保证数据顺序,UDP不保证

7)TCP是点对点,UDP是一对一,一对多,多对一,多对多交互通信

8)TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

二、TCP/IP协议族

TCP/IP协议族包括传输层、网络层、链路层,UDP是TCP/IP协议族中的一种。 

三、socket(套接字) 

socket是应用层与TCP/IP协议族的中间抽象接口,将复杂的TCP/IP通信过程隐藏在socket后面,应用层通过接口去进行指定协议的通讯。

(图出处https://www.cnblogs.com/wangcq/p/3520400.html) 

四、基于TCP的socket通信

(图出处https://www.cnblogs.com/wangcq/p/3520400.html

五、TCP的三次握手四次挥手

SYN:建立连接;ACK:收到消息确认;FIN: 关闭连接

握手是由客户端发出的,挥手可由客户端发起,也可由服务端发起;过程中ACK始终都是+1发出的

1、三次握手

1)客户端向服务端发送建立连接请求,SYN J;

2)服务端收到客户端请求之后响应确认信息,ACK J+1,并发出建立连接请求,SYN K;

3)客户端收到服务端消息之后,响应确认信息,ACK K+1

至此,握手成功。

(图出处https://blog.csdn.net/qq_38950316/article/details/81087809

2、四次挥手 

1)客户端向服务端发送关闭连接请求,FIN M,此时客户端置于等待状态,FIN_WAIT_1;

2)服务端收到客户端请求之后响应确认信息,ACK M+1,此时客户端切换等待状态,FIN_WAIT_2;

3)服务端接受完数据,向客户端发送关闭连接请求,FIN N;

4)客户端收到服务端的请求之后,响应确认信息,ACK N+1,此时客户端切换等待状态,TIME_WAIT;

5)此时TCP连接还没有释放,必须经过2∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态

图出处(https://blog.csdn.net/qq_38950316/article/details/81087809

3、为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

参考链接:

https://www.cnblogs.com/wangcq/p/3520400.html

https://blog.csdn.net/m_xiaoer/article/details/72885418

https://blog.csdn.net/whuslei/article/details/6667471

https://blog.csdn.net/qq_38950316/article/details/81087809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值