TCPIP学习笔记(3)

mac2025-08-31  13

UDP

udp是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份发送的IP数据包。

这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系

UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证他们能到达目的地

应用程序必须关心IP数据报的长度。如果它超过网络的MTU,那么就要对IP数据报进行分片。

DNS:53号端口

UDP校验和

UDP检验和覆盖UDP首部和UDP数据

IP首部的校验和,它只覆盖IP的首部

UDP的校验和是可选的,而TCP的校验和是必须的

IP计算检验和和UDP计算检验和之间存在不同的地方。首先UDP数据报的长度可以为奇数字节,但是检验和算法是把若干个16bit字相加。解决方法是必要时在最后增加填充字节,这只是为了检验和的计算(也就是说,可能增加的填充字节不被传送)

UDP数据报和TCP段都包含一个12字节长的伪首部,它是为了计算检验和而设置的。伪首部包含IP首部一些自独胆。其目的是让UDP两次检查数据是否已经正确到达目的地(例如,IP没有接受地址不是本机的数据报,以及IP没有把应传给另一高层的数据报传给UDP)

IP分片

IP把MTU与数据报长度进行比较。

如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。

把一份IP数据报分片以后,只有到达目的地才进行重新组装

重新组装由目的端的IP层来完成,其目的是使分片和重新组装过程对运输层(TCP和UDP)是透明的。

已经分片过得数据报有可能会再次进行分片。

 

 

广播与多播

三种IP地址:单播地址、广播地址和多播地址。

广播和多播仅应用于UDP,他们对需将报文同事传往多个接受者的应用来说十分重要。

TCP是一个面向连接的协议,它意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在一条连接

有时一个主机要向网上的所有其他主机发送帧,这就是广播。通过ARP和RARP可以看到这一过程。

多播处于单播和广播之间:帧仅传送给属于多播组的多个主机。

 

 

 

DNS

域名系统是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选录信息。

这里提到的分布式是指在Internet上的单个站点不能拥有所有的信息。

DNS提供了允许服务器和客户程序相互通信的协议。

对DNS的访问时通过一个地址解析器来完成的

解析器通常是应用程序的一部分。解析器并不像TCP/IP协议那样是操作系统的内核。

操作系统内核中的TCP/IP协议族对DNS一点都不知道

 

 

标志位

当回应大于512字节会出现“可截断的”,UDP都是小于512,出现大于512的会用tcp。两个服务间用区域传送会使用TCP

TFTP

TFTP即简单文件传送协议,最初打算用于引导无盘系统(工作站或X终端)

和使用TCP的文件传送协议(FTP)不同,为了保持简单和短小,TFTP将使用UDP。

TFTP的代码(和它所需要的的UDP、IP和设备驱动程序)都能适合只读存储器。

 

 

换端口:因为客户与服务器见得连接需要持续一个较长的时间(可能数秒或数分钟)。如果一个服务器进行使用树脂端口来进行文件传输,那么在文件传输期间,它要么拒绝任何来自其他客户的请求,要么一个服务器进程在同一端口(69)同时对多个客户进程进行多个文件传输。最简单的办法是让服务器进程在收到RRQ货WRQ后,改用新的端口。当然,客户进程在收到第一个数据分组后必须探测到这个新的端口,并将之后的所有确认发送到那个心得端口。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最新回复(0)