计算机网络笔记

TCP有连接可靠服务

TCP特点

1.TCP是面向连接的传输层协议;

2.每条TCP连接只能有两个端点,每条TCP连接是一对一的;

3.TCP提供可靠交付,保证传送数据无差错,不丢失,不重复且有序;

4.TCP提供全双工信道,允许通信双方同时发送数据。TCP两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据;

发送缓存存放的数据:1.发送应用程序传给发送方TCP准备发送的数据。2.TCP已发送但未收到确认的数据。

接收缓存存放的数据:1.按序到达但尚未被接受应用程序读取的数据。2.不按序到达的数据。

5.TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅视为一串无结构的字节流。(这会导致粘包问题)UDP报文长度由发送应用进程决定,TCP报文的长度需要根据接收方给出的窗口值和网络拥塞程度来决定。如果进程传送到TCP缓存的数据块太长,TCP会把它划分得短一些传送,如果太短则积足够多得字节再组成报文段发出去。

TCP连接的端口为套接字,由IP和端口号组成,套接字唯一的标识网络中的一台主机和其上的一个应用(进程)。每条TCP连接唯一的被通信的两个端口确定。

三次握手

1.客户机向服务器发送请求连接报文段,报文段中同步位SYN置1,同时包含一个初始序号seq=x,客户端进入同步已发送(SYN-SENT)状态。

2.服务器收到客户端的请求连接报文,回复一个确认报文。报文中确认位ACK、同步位SYN都置1,并包含一个初始序号seq=y和确认号ack=x+1,服务器进入同步收到(SYN-RCVD)状态。

3.客户端收到服务器的确认之后再向服务器发送一个确认报文,报文中确认位ACK置1,序号为seq=x+1,确认号ack=y+1,客户进程进入已建立连接(ESTABLISHED)状态。

四次挥手

1.客户机发送释放链接报文段,并停止发送数据,主动关闭TCP连接。报文段中终止位FIN置1,序号seq=u为上一个发送序号+1,客户机进入终止等待1(FIN-WAIT_1)状态。

2.服务器收到报文段后回复一个确认报文段。报文段中确认位ACK置1,确认号ack=u+1,序号seq=v为前一个序号加一,服务器进入关闭等待状态(CLOSE-WAIT)。

3.当服务器没有要向客户机发送的数据时,通知TCP释放链接。发送释放连接报文段。报文段中终止位FIN确认位ACK都置1,确认号ack=u+1,序号seq=w(可能在这之前服务器还发送过一些数据),服务器进入最后确认状态(LAST-ACK)。

4.客户机收到报文,回复一个确认报文段。报文段中确认位ACK置1,确认号ack=w+1,序号seq=u+1。客户机等待2MSL(最长报文段寿命)后进入连接关闭状态(CLOSED)。

UDP无连接非可靠服务

UDP特点

1.无需建立连接,没有建立连接时延;

2.无连接状态,因为是无连接,因此不必维护连接状态(接收缓存发送缓存拥塞控制和确认之类的);

3.分组首部开销更小(UDP首部只有8B,而TCP有20B);

4.应用层能更好的控制发送的数据和发送时间。(没有拥塞控制不会受网络拥塞影响);

5.UDP支持一对一,一对多,多对多的交互通信,而TCP只支持一对一通信;

UDP常用于一次性传送较少数据的网络应用,如DNS,SNMP,也常用于多媒体应用,如IP电话,视屏会议,流媒体等。因为时延小。

UDP不保证可靠交互,但可由用户在应用层来完成可靠交互(可以在应用层实现类似TCP可靠交互的机制(确认,重传,数据有序))

UDP是面向报文,UDP对应用层交下来的报文既不合并,也不拆分,而是保留报文的边界,一次交付一个完整的报文(报文在UDP中是不可分割的,报文是UDP数据报处理的最小单位)。(但UDP交付给IP层(网络层)后可能会被分片)

相关推荐
Themberfue1 小时前
Java 网络原理 ①-IO多路复用 || 自定义协议 || XML || JSON
xml·java·开发语言·网络·计算机网络·json
卡戎-caryon2 小时前
【MySQL】01.MySQL环境安装
数据库·笔记·mysql·环境配置
菲力蒲LY3 小时前
刷新页面一次,错误地进行了多次重复调用后端服务
笔记
莫奈的日出5 小时前
wps透视数据表
经验分享·笔记·百度·wps、透视数据表
l1x1n05 小时前
No.29 笔记 | CTF 学习干货
网络·笔记·学习
m0_689618286 小时前
LCE软机器人登场!热场光控下的多模态运动传奇?
人工智能·笔记·机器学习·机器人
左漫在成长7 小时前
王佩丰24节Excel学习笔记——第二十二讲:制作甘特图与动态甘特图
笔记·学习·excel·甘特图
索然无味io8 小时前
免杀0到1--反沙箱
c语言·开发语言·笔记·学习·网络安全·visual studio
HackKong8 小时前
计算机网络安全
网络·计算机网络·web安全·网络安全
✧˖‹gσσ∂ иιghт›✧8 小时前
[江科大STM32] 第五集STM32工程模板——笔记
笔记