以太网数据帧的物理特性是长度必须在46-1500之间。TCP/IP支持多种不同的链路层协议,如以太网,令牌环网,FDDI(光纤分布式数据接口)以及RS-232串行线路。书中主要讨论了以太网以及两个串行接口(SLIP,PPP)
以太网链路层(主要的局域网计数,采用CSMA/CD的媒体介入方法,即带冲突检测的载波监听多路介入),主要有两种封装:
RFC894:以太网IP数据包的封装格式,最常用
RFC1042:IEEE802网络的IP数据包封装格式。
下图是两种封装格式(人比较懒,就直接都截图了,又清晰明了。。。
):
下图是两种封装格式(人比较懒,就直接都截图了,又清晰明了。。。
![吐舌头](http://static.blog.csdn.net/xheditor/xheditor_emot/default/tongue.gif)
两种都有最小长度要求,802.3规定数据部分至少为38字节,以太网则为46字节
最大传输单元MTU:以太网1500, 802.3是1492
路径MTU:两个主机通信的链路上经过的网络的最大传输单元MTU的最小值
两种串线路:
SLIP:Serial Line IP,它是一种在串行线路上对IP数据报进行封装的简单格式,在RFC1055中描述。特点,简单
PPP:点对点协议,修改了SLIP协议中的所有缺陷,包括3部分
1 在串行链路上封装IP数据包的方法
2 建立,配置及测试数据链路的链路控制协议(LCP)
3 针对不同网络协议的网络控制协议(NCP)
以下为两种格式封装:
以下为两种格式封装:
IP首部与TCP首部及其数据始终有检验和。UDP 首部及其数据的检验和是可选的。IP是不可靠,无连接的数据包传送服务。
不可靠是指不能保证IP数据报能成功到达目的地,IP只保证尽力而为的传输服务。可靠性需要由TCP来提供。
不可靠是指不能保证IP数据报能成功到达目的地,IP只保证尽力而为的传输服务。可靠性需要由TCP来提供。
无连接:IP服务并不维护任何关于后续数据报的状态信息,每个数据包的处理是相互独立的,所以IP数据包可以不按发送顺序接收。
进行路由选择时,主机和路由器都使用路由表,表中有三种类型的路由:特定主机型,特定网络型和默认路由型。在选择路由时,主机路由优先于网络路由,在最后没有其他可选路由存在时菜选择默认路由。
IP路由选择是通过逐跳来实现的,数据报在各占的传输过程中目的IP地址始终不变,但是封装和目的链路层地址在每一站都改变。大多数的主机和许多路由器对于非本地网络的数据包都使用默认的下一站路由。
以下是IP数据包格式:
以下是IP数据包格式:
UDP协议首部长度字段指的是UDP首部加上UDP数据的字节长度,最小是8字节,即可以发送0字节的UDP数据报。
IP数据包长度指的是数据包全部,因此UDP数据报长度是全场减去IP首部的长度(在IP数据包中指定)
UDP检验和覆盖UDP首部和UDP数据,IP首部检验和只覆盖IP首部,不包括IP数据包中任何数据。TCP检验和也是全覆盖,TCP检验和是必需的,UDP是可选的,但是默认是打开的,所以一般情况下需要该字段。以下UDP数据包格式,是比较简单的:
TCP是面向连接的,可靠的字节流服务。TCP,UDP都是封装在IP数据包中进行传输,TCP首部固定长度是20字节,UDP是8字节,IP首部也是20字节。(这是在不包括可选项的情况下)。以下是TCP数据包格式:
TCP将用户数据打包构成报文段,发送数据后启动一个定时器,另一端队受到的数据进行确认,对失序的数据重新排序,丢弃重复数据;TCP提供端到端的流量控制,并计算和验证一个强制性的端到端的检验和。Telnet,Rlogin,FTP,SMTP都使用TCP进行传输。
TCP连接建立是三次握手,连接关闭是四次握手,一般服务器一端是被动关闭,即客户端发出关闭通知后,服务器再向客户端发送关闭通知,以下为连接与关闭时对应的各个标志字段的变化:
TCP半办关闭连接状态,可以写的一端关闭,读端继续打开,直到完成:
UDP和TCP都在IP数据包中进行传播,IP数据包又封装在以太网或点对点链路帧中进行传播。
TCP连接建立是三次握手,连接关闭是四次握手,一般服务器一端是被动关闭,即客户端发出关闭通知后,服务器再向客户端发送关闭通知,以下为连接与关闭时对应的各个标志字段的变化:
TCP半办关闭连接状态,可以写的一端关闭,读端继续打开,直到完成:
UDP和TCP都在IP数据包中进行传播,IP数据包又封装在以太网或点对点链路帧中进行传播。
DNS固定首部长度是12字节,4个长度的可选字段,DNS支持UDP和TCP,大部分情况下使用UDP,一些情况下使用TCP,如当辅助名字服务器向主 名字服务器进行查询以便了解数据是否发生变化时,如果发生变化,则主服务器就使用TCP向辅助域名服务器发送数据。
应用程序通过名字解析器将一个主机名转换为一个IP地址,也可将一个IP地址转换为与之对应的主机名。名字解析器向一个本地名字服务器发出查询请求,这个名字服务器可能通过某个根名字服务器或其他名字服务器来完成这个查询。
应用程序通过名字解析器将一个主机名转换为一个IP地址,也可将一个IP地址转换为与之对应的主机名。名字解析器向一个本地名字服务器发出查询请求,这个名字服务器可能通过某个根名字服务器或其他名字服务器来完成这个查询。