TCP/IP和UDP都是OSI模型中传输层的协议。
他们的服务有如图的端口号
UDP又称用户数据报文协议
又成不可靠非面向连接的尽力而为传输协议
UDP传输前不需要建立好连接,报头也不需要有很详细约束。
TCP报文
(1)源端口和目的端口:各占16bit,端口是传输层与应用层的服务端口。
(2)序号字段:SEQ序号,占32bit。TCP连接中传送的数据流中的每个字节都编上一个序号。序号字段值指的是本报文段所发送的数据的第一个字节的序号。
(3)确认号:ACK序号,占32bit。 是期望收到对方的下一个报文段的数据的第一个字节的序号。只有ACK标志位为1时,确认号字段才有效,ACK=SEQ+1.
(4) 标志位: 共六个,即URG、ACK、PSH、RST、SYN、FIN。
a、紧急比特URG:当URG=1时,表明紧急指针字段有效。它告诉系统 此报文段中有紧急数据, 应尽快传送。
b、确认比特ACK:只有当ACK=1时确认号字段才有效,等于零时无效。
c、推送比特PSH:接收TCP收到推送比特 置1的报文段,就尽快交付给接受应用进程,而不用等到整个缓存都填满了后再向上交付。
d、复位比特RST:当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接, 然后再重新连接。
e、同步比特SYN:SYN为1时,表示 这是一个连接请求或连接接受报文。
f、 终止比特FIN:用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
(5) 数据偏移:占4bit,它指出TCP 报文段的数据的起始处 距离TCP报文段的起始处有多远。
(6) 窗口字段:占16bit,窗口字段用来控制对方发送的数据量,单位 为字节。
(7)检验和:占16bit,检验和字段检验的范围 包括首部和数据两部分。在计算检验和 时,要在TCP报文段的前面加上12字节的伪首部。
(8)紧急指针字段:占16bit,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
(9)选项字段:长度可变,TCP只规定一种选项,即最大 报文段长度MSS(Maxinum Segment Size)。
(10)保留字段:占6bit,目前应置为0。
IP报头