网络编程之TCP/UDP

源于蚂蚁课堂的学习,点击这里查看(老余很给力)  

七层网络模型

其实就是随着科技不断发展的一个过程。即从下游发展至上游。按照自上而下排列,有:
应用层:HTTP协议,邮件传输,文件服务器等。
表示层:不同计算机系统语法之间的通讯
会话层:建立与应用程序之间的通讯
传输层:定义了应用程序可以启动端口号和接口协议,如:TCP/UDP
网络层:定义了ip地址,可以根据ip地址找到对应的服务器,以路由器、交换机等设备实现计算机之间的通讯
数据链路层:将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正(错误检测机制)
物理层:在物理的计算机上以二进制的方式进行数据的传输。

 TCP

一种建立在连接基础上的数据传输,是一种可靠的通讯,即只有确定数据接收方存在且可以建立连接,才会进行数据通讯。

三次握手

TCP协议在建立连接时,通过三次握手协议去确保连接正常。即:
客户端会先发送请求至服务器,告诉服务器客户端想要传输数据,是否可以建立连接。
服务器收到请求后,会回复客户端,可以进行数据传输。
由于网络可能抖动等原因,故客户端会再发一次请求确定前两次握手的服务器是否真的可以接收数据。
这样一来,两端通讯三次,判断可传输数据,就会建立连接,客户端开始发送数据的传输

 四次挥手

客户端想要关闭连接时,会发送请求通知服务器,
服务器会先回复客户端,可能通讯中有一些善后的工作需要处理,稍等一会
服务器确定数据已全部传输结束,发送关闭的报文至客户端
客户端收到信息后会再次发送确认关闭的请求至服务器
服务器收到信息后,关闭连接

 UDP

面向无连接通讯协议,即就算没有数据接收方也无所谓,只要确保数据发送出去即可。属于不可靠传输,可能会存在丢包的现象。

猜你喜欢

转载自blog.csdn.net/yxh13521338301/article/details/106239139