关于OSI中TCP/UDP协议的理解
- 什么是OSI?
OSI是开放式系统互联Open System Interconnection的缩写,而对应的OSI模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 - OSI相关层的功能与对应协议族
- TCP/UDP协议在OSI模型中
TCP/UDP工作位于网络OSI的七层模型中的第四层——传输层,提供端对端的接口。 - 什么是TCP?
TCP(Transmission ControlProtocol,传输控制协议)是一个面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。
这里的连接方式便是所谓的TCP的三次握手。
(这里引用了https://blog.csdn.net/u014682691/article/details/52061646,确实很通俗的理解方式。)
第一次:主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,
主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我.
第二次:主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:
我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我
第三次:主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了
这样3次握手就完成了,主机A和主机B 就可以传输数据了.
然后便是TCP的四次断开连接的方式:
A:数据传完了,询问B机是否可以停止。
B:消息收到,但是我还没有准备好,请稍等!
B:好了,可以停止了。
A:好的,隔一段时间没有回复A便会自动关闭。 - TCP的流模式特点(稳)
①有顺序
②从发送端write 进多少与接收端read多少没有关系
③write 进来的量<接收缓存大小 - 什么是UDP?
UDP是一个非连接的协议,传输数据之前源端和终端不建立连接 UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,也就是说其链接速度,抓包效率更高,但是对应的掉包率和排列数据顺序可能无法保障! - UDP的数据报模式(快)
①无固定顺序
②从发送端write 进多少,接收端就必须read多少
③一次一段报文,且报文之间不会合并 - TCP与UDP的区别
1.TCP连接与UDP无连接;
2.对系统资源的要求不同(TCP较多,UDP少);
3.UDP程序结构较TCP来说更简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
以上是一些浅显的理解,并不提供相关编写方法。