UDP协议(用户数据报协议)和TCP协议(传输控制协议)
UDP协议的概述
传输UDP只在IP的数据报服务之上增加了有限的功能(端口功能和差错检测功能DP)
UDP的特点
UDP是无连接的
UDP使用尽最大努力交付
UDP没有交通拥塞控制
UDP面向报文
UDP支持一对一、一对多、多对一、多对多的交互通信
UDP存在的问题
UDP数据报格式(UDP报文的首部格式)
UDP用户数据报有两个部分:数据部分和首部
首部字段有8个字节,由4个字段组成,每个字段两个字节
伪首部不是UDP数据报的实际部分,在UDP用户数据报之前增加12个字节的伪首部,是为了计算检验和
UDP首部有一个字段为检验和:用来检测传输中有没有数据错误的
UDP应用于多媒体数据传输
UDP怎样封装应用层送过来的数据?
不分组,加上8字节的首部
分组的作用:
报文太大,方便存储转发
一个用户下载一个视频是用TCP协议,需要准确无误,对实时性要求不高。在线观看电影用UDP协议,电影播放要求连贯,不要断断续续,播放过程中数据传输错误或丢失而造成播放失真,一般人察觉不到,不影响整部电影观赏。
TCP协议的概述
面向连接的运输层协议,它提供全双工和可靠交付的服务
TCP的特点
TCP是面向连接的运输层协议
每一条TCP连接只能有两个端点,点对点(一对一)
TCP提供可靠交付的服务
TCP提供全双工通信(通信有三种模式:单工、半双工、全双工;单工是指通信是单向的,半双工是指通信虽是双向的,但每一时刻只能有一个方向的通信,全双工是通信是同时双向的)
TCP面向字节流
TCP管理发送的报文段(发送方的TCP传输层根据网络传输状况,将应用进程交付的不定长度的数据流分成特定长度的数据块)的长度
什么是连接?
连接是就发送方发送数,发送与接收建立一种可沟通的机制
TCP报文段格式(TCP报文的首部格式)
报文段分为首部和数据两部分
TCP报文段首部的前20字节是固定的
UDP比TCP的传输效率更高的原因:
UDP不建立连接,UDP不确认收到的数据报,传输层的发送方和接收方都不用处理数据报分组的问题,UDP数据报只有简单的首部
检验和是用来检验什么的?检验原理是什么?
检验和用来检验数据传输是否有差错(包括数据的改变和数据的丢失)。检验原理:发送方用循环加法得到一个发送数据的逻辑和,然后用这个和的反码作为检验码一起发送给接收方,接收方收到后做同样的运算,如果数据传输没有错误,得到的和的反码应该和检验码一样。
TCP怎样封装应用进程交付的太长的数据报文?
将太长的数据报文分割成若干报文段,每段加上至少20字节长度的TCP首部,从而封装成TCP报文段。
TCP通过什么控制来达到可靠控制的目的?
差错传输、流量控制、拥塞控制
UDP协议和TCP协议分别关注点是什么?
UDP和TCP都用检验和来检验数据传输是否有差错
为什么TCP报文段的首部比UDP数据包首部长很多?
UDP追求的是快速,所以首部越短处理信息越快,TCP追求准确,需要加上更长的首部传递更多的传输控制信息。