正课笔记6

传输协议


TCP报文段首部格式(20-60字节)
源端口号目标端口号都是进程的端口号
序号:TCP从进程接收数据的字节流时,会存储在发送的缓存中,同时每一个字节进行编号
编号不一定从0开始,首字节的编号是一个随机数(32位无符号的值)。
发送和接收这两种不同方向的编号是互相独立的。
当每个字节的编号完成后,TCP会给报文段指定一个“序号”,是报文段首字节的编号,也是唯一标识。
当数据传输到目的地之后,接收端会按照这个序号把数据重新排列,保证数据的准确信。
确认号:对发送端的确认信息,用来告诉发送端这个序号之前的数据段已经接收完成,如果确认号是X,则说明X-1个数据段已经完成发送。
首部长度:一般二十个字节,选项可以最大使首部长度扩大到60字节。
保留:目前未被使用,只做未来扩展功能使用
控制位:很重要的作用,TCP的连接、传输、断开,都受这六个控制位指令的指挥。
URG:紧急指针有效位
ACK:确认序号有效位:只有当ACK=1时,确认号才有效,否则无效。
PSH:优先级标志位:PSH=1时,要求接收方尽快将数据段送达应用层。
RST:重新连接标志位:RST=1时,通知重新建立该TCP连接。
SYN:同步序号位:TCP需要建立连接时,SYN=1。
FIN:发送端完成任务位:任务完成时,TCP连接需要断开,发送标记端FIN=1,接收端就会关闭TCP连接。
窗口大小:说明本地可接收段的数目,这个值可变,网络通畅时,窗口会变大加快传输效率,网络不稳定时,窗口会减小来保证数据的可靠性传输。流量控制机制就是依靠变化窗口来实现。
校验和:做差错控制,与IP的校验和不同,TCP的校验和的计算包括TCP首部、数据和其他填充字节。在发送时,发送端计算校验和,接收端也计算校验和对比,若不对应,则接收端丢弃该数据,一般此时会要求重新传输该报文。
紧急指针:一般发生的场景:一个数据包因各种原因多次重传,导致后续传输被堵塞或等待,此时发送端会标记URG=1,紧急指针标记了紧急传输的报文的序号。
选项:略


TCP连接


IP协议是一个无连接协议,TCP协议是一个面向连接的协议(虚拟连接)。
TCP报文段封装成IP数据包后,可以走不同的路径到达终点(多线程),因此接收到的IP数据包可能不按照顺序到达,甚至可能损坏或丢失。如果TCP未接收到对应顺序的报文段,则会保留后面的,等待前面的报文段到达,损坏或丢失的会重传,目的是保障TCP报文段是完整的,有序的。


TCP连接三次握手的过程:
1、发送端建立连接:发送SYN报文(序号Seq=x,SYN=1)
2、接收端发送接收反馈:发送SYN+ACK报文(Seq=y,Ack(确认号) =X+1,SYN=1,ACK=1)
3、发送端继续传后一个,同时附上反馈的反馈:发送ACK报文(Seq=x+1,Ack=y+1,ACK=1)
TCP关闭连接的四次挥手的过程(中间有半关闭状态,最后一次反馈不在TCP连接中,以通知消息送达):
1、发送端关闭发送通道的请求:发送FIN+ACK报文(Seq=x,Ack=y+1,FIN=1,ACK=1)
2、接收端发送请求的反馈:发送ACK报文(Seq=y+1,Ack=x+1,ACK=1)
3、接收端关闭反馈通道的请求:发送FIN+ACK报文(FIN=1,ACK=1)
4、发送端发送请求的反馈:发送ACK报文(ACK=1)

UDP:无连接的不可靠的传输协议


首部格式:
UDP只关心是否发送,不关心是否送达,UDP的长度不是很大,因此报文较小,发送端和接收端的交互会很少。
速度更快,效率更高。UDP的校验和是UDP提供的唯一的可靠机制。
应用场景主要是:电话、视频、聊天等
 

你可能感兴趣的:(笔记,网络)