TCPIP详解学习笔记-非常全

合集下载

TCPIP详解读书笔记(第九章IP选路

TCPIP详解读书笔记(第九章IP选路

TCP/IP详解读书笔记(第九章 IP选路)选路是IP最重要的功能之一。

图1是IP层处理过程的简单流程。

需要进行选路的数据报可以由本地主机产生,也可以由其他主机产生。

在后一种情况下,主机必须配置成一个路由器,否则通过网络接口接收到的数据报,如果目的地址不是本机就要被丢弃。

图1:IP层工作流程图1中的路由表经常被IP访问(在一个繁忙的主机上,一秒钟内可能要访问几百次),但是它被路由守护程序等更新的频度却要低得多(可能大约30秒一次)。

选路的原理IP搜索路由表的几个步骤:1) 搜索匹配的主机地址;2) 搜索匹配的网络地址;3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为0)。

匹配主机地址步骤始终发生在匹配网络地址步骤之前。

IP层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。

这区别于选路策略,它只是一组决定把哪些路由放入路由表的规则。

IP执行选路机制,而路由守护程序则一般提供选路策略。

ICMP主机与网络不可达差错当路由器收到一份IP数据报但又不能转发时,就要发送一份ICMP“主机不可达”差错报文(见第六章)。

ICMP重定向差错当IP数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送ICMP重定向差错报文给IP数据报的发送端。

这在概念上是很简单的,正如图2所示的那样。

只有当主机可以选择路由器发送分组的情况下,我们才可能看到ICMP重定向报文。

图2:ICMP重定向例子1) 我们假定主机发送一份IP数据报给R1。

这种选路决策经常发生,因为R 1是该主机的默认路由。

2) R1收到数据报并且检查它的路由表,发现R2是发送该数据报的下一站。

当它把数据报发送给R2时,R1检测到它正在发送的接口与数据报到达接口是相同的(即主机和两个路由器所在的LAN)。

这样就给路由器发送重定向报文给原始发送端提供了线索。

3) R1发送一份ICMP重定向报文给主机,告诉它以后把数据报发送给R2而不是R1。

tcpip详解卷阅读笔记(4)TCP

tcpip详解卷阅读笔记(4)TCP

/net/201201/116442.html最后终于来到了大块头TCP协议,为了给应用层提供可靠的传输服务,tcp协议设计了各种机制以实现丢包、重发、乱序、链路传输错误等传输过程中可能出现的错误。

1. TCP协议概述我们首先来看一下TCP协议的首部,它将给收发两端提供怎样的信息:与UDP一样,TCP报头的前8个字节也是源和目的端的端口号。

<源ip地址,源端口号,目的ip地址,目的端口号>(即一个socket pair)确定一条tcp连接。

序列号用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。

反过来,确认序列号是表示TCP发端期望从TCP收端收到的下一个字节(好像说得不是很清楚,后面再说)。

首部长度给出首部中32bit字的数目,跟IP首部一样,TCP最多有60字节的首部。

接下来是6个标志比特,它们中的多个可以被同时设置为1:URG:紧急指针有效,与后面的紧急指针结合起来ACK:确认序号有效PSH:接收方尽快将这个报文段交给应用层RST:重建连接SYN:同步序号用来发起一个连接FIN:发端完成发送任务,将要关闭连接检验和的计算方法和UDP中的检验和一样,也要加上伪首部,也要填充奇数字节,与UDP不同的是,TCP强制要求计算检验和,而UDP的检验和是可选的。

窗口大小表明接收端当前的接收能力,以字节为单位,16位窗口限制了最大值为65535字节,在选项字段中,有一个窗口刻度选项,允许这个值按比例放大。

紧急指针是一个正的偏移量,和序号中的值相加表示紧急指针最后一个字节的序号。

选项字段可以包括最长报文大小(MSS),这是最常见的可选字段。

每个连接方通常都在通信的第一个报文段中指明这个选项,表明本端所能接收的最大长度的报文段;还有上面我们提到的窗口扩大选项以及时间戳选项,我们将在后面看到时间戳选项的作用。

这里摘录一段话来描述TCP协议:“TCP可以表述为一个没有选择确认或否认的滑动窗口协议。

TCPIP笔记

TCPIP笔记

以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是IP、ARP 还是RARP 协议的数据报,然后交给相应的协议处理。

假如是IP 数据报,IP 协议再根据IP 首部中的“上层协议”字段确定该数据报的有效载荷是TCP、UDP、ICMP 还是IGMP,然后交给相应的协议处理。

假如是TCP 段或UDP 段,TCP 或UDP 协议再根据TCP 首部或UDP 首部的“端口号”字段确定应该将应用层数据交给哪个用户进程。

IP 地址是标识网络中不同主机的地址,而端口号就是同一台主机上标识不同进程的地址,IP 地址和端口号合起来标识网络中唯一的进程。

注意,虽然IP、ARP 和RARP 数据报都需要以太网驱动程序来封装成帧,但是从功能上划分,ARP 和RARP 属于链路层,IP 属于网络层。

虽然ICMP、IGMP、TCP、UDP 的数据都需要IP 协议来封装成数据报,但是从功能上划分,ICMP、IGMP 与IP 同属于网络层,TCP 和UDP 属于传输层。

其中的源地址和目的地址是指网卡的硬件地址(也叫MAC 地址),长度是48位,是在网卡出厂时固化的。

用ifconfig 命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。

协议字段有三种值,分别对应IP、ARP、RARP。

帧末尾是CRC 校验码。

注意到源MAC 地址、目的MAC 地址在以太网首部和ARP 请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。

硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP 地址,后面两个地址长度对于以太网地址和IP 地址分别为6和4(字节),op 字段为1表示ARP 请求,op字段为2表示ARP 应答。

TCPIP基础82个知识点

TCPIP基础82个知识点

1.不同厂商、不同型号、运行不同操作系统的计算机之间能够通过TCP/IP协议栈实现相互之间的通信。

2.TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代得到了广泛的应用。

3.TCP/IP是一个真正的开放系统,是网络互联的基础。

4.20世纪60年代以来,计算机网络得到了飞速增长。

各大厂商为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA,Novell IPX/SPX协议,Apple公司的AppleTalk协议,DEC公司的DECnet,以及广泛流行的TCP/IP协议。

同时,各大厂商针对自己的协议生产出了不同的硬件和软件。

各个厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。

但由于多种协议的并存,也使网络变得越来越复杂;而且,厂商之间的网络设备大部分不能兼容,很难进行通信。

5.为了解决网络之间的兼容性问题,帮助各个厂商生产出可兼容的网络设备,国际标准化组织ISO于1984年提出了OSI RM(Open System Interconnection Reference Model,开放系统互连参考模型)。

OSI 参考模型很快成为计算机网络通信的基础模型。

在设计OSI 参考模型时,遵循了以下原则:各个层之间有清晰的边界,实现特定的功能;层次的划分有利于国际标准协议的制定;层的数目应该足够多,以避免各个层功能重复。

6.OSI参考模型具有以下优点:简化了相关的网络操作;提供即插即用的兼容性和不同厂商之间的标准接口;使各个厂商能够设计出互操作的网络设备,促进标准化工作;防止一个区域网络的变化影响另一个区域的网络,结构上进行分隔,因此每一个区域的网络都能单独快速升级;把复杂的网络问题分解为小的简单问题,易于学习和操作。

7.OSI参考模型分为七层,由下至上依次为第一层物理层(Physical layer)、第二层数据链路层(Data link layer)、第三层网络层(Network layer)、第四层传输层(Transport layer)、第五层会话层(Session layer)、第六层表示层(Presentation layer)、第七层应用层(Application layer)。

TCPIP复习要点(答案自己整理非标准)

TCPIP复习要点(答案自己整理非标准)

TCPIP复习要点(答案自己整理非标准)一、概述1、TCP/IP体系结构(与OSI模型的对照)应用层,传输层,网络层,数据链路层,物理层。

OSI 应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。

2、每层的主要协议应用层:DNS,FTP,TFTP,SMTP,SMNP传输层:UDP,TCP网络层:ICMP,IGMP,ARP,RARP,IP数据链路层,物理层:由底层网络定义的协议。

3、数据在每层的封装过程应用层::首部+数据传输层:TCP首部+上层数据网络层:IP首部+上层数据数据链路层:以太网首部+上层数据+以太网尾部物理层:比特流4、每层PDU(协议数据单元)的名称物理层:比特流数据链路层:帧网络层:分组传输层:报文段二、数据链路层协议1、以太网的协议结构(层次)应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。

2、MAC帧的格式帧头,数据部分,帧尾。

其中,帧头和帧尾包含一些必要得控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如ip数据报。

MAC帧的帧头包括三个字段。

前两个字段分别为6字节长的目的地址字段和源地址字段,目的地址字段包含目的MAC地址信息,源地址字段包含源MAC地址信息。

第三个字段为2字节的类型字段,里面包含的信息用来标志上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议。

MAC帧的数据部分只有一个字段,其长度在46到1500字节之间,包含的信息是网络层传下来的数据。

MAC帧的帧尾也只有一个字段,为4字节长,包含的信息是帧校验序列FCS(使用CRC校验)。

3、MTU(最大数据传输单元)的含义是指一种通信协议的某一层上面所能通过的最大数据包大小。

4、MAC地址MAC地址是识别LAN(局域网)节点的标识。

网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM,它存储的是传输数据时真正赖以标识发出数据的主机和接收数据的主机的地址。

【TCPIP】TCP详解笔记

【TCPIP】TCP详解笔记

【TCPIP】TCP详解笔记⽬录前⾔本笔记记录 TCP/IP 中的 TCP 理论。

包括三次握⼿、四次挥⼿、状态变迁、慢启动、快重传等等。

《TCP/IP详解》⼀共三卷,其中卷⼆、卷三更多偏重于编程细节,⽽卷⼀更多偏重于基础原理。

后⾯再发布个⽀持处理多线程并发及客户端数量限制的TCP服务端+TCP客户端例程。

17. TCP 传输控制协议17.1 引⾔17.2 TCP 服务TCP提供⼀种⾯向连接的、可靠的字节流服务。

TCP通过下列⽅式来提供可靠性:应⽤数据被分割成TCP认为最适合发送的数据块。

由 TCP传递给IP的信息单位称为报⽂段或段(segment)。

当TCP发出⼀个段后,它启动⼀个定时器,等待⽬的端确认收到这个报⽂段。

如果不能及时收到⼀个确认,将重发这个报⽂段。

当TCP收到发⾃TCP连接另⼀端的数据,它将发送⼀个确认。

这个确认不是⽴即发送,通常将推迟⼏分之⼀秒。

TCP将保持它⾸部和数据的检验和。

这是⼀个端到端的检验和,⽬的是检测数据在传输过程中的任何变化。

如果收到段的检验和有差错, TCP将丢弃这个报⽂段和不确认收到此报⽂段(希望发端超时并重发)。

TCP报⽂段作为 IP 数据报来传输,⽽IP数据报的到达可能会失序,因此TCP报⽂段的到达也可能会失序。

如果必要,TCP将对收到的数据进⾏重新排序,将收到的数据以正确的顺序交给应⽤层。

IP数据报会发⽣重复,TCP的接收端必须丢弃重复的数据。

TCP还能提供流量控制。

TCP连接的每⼀⽅都有固定⼤⼩的缓冲空间。

TCP的接收端只允许另⼀端发送接收端缓冲区所能接纳的数据。

(窗⼝)字节流服务(byte stream service):两个应⽤程序通过TCP连接交换8 bit字节构成的字节流。

TCP不在字节流中插⼊记录标识符。

17.3 TCP的⾸部视图:端⼝:每个TCP段都包含源端和⽬的端的端⼝号,⽤于寻找发端和收端应⽤进程。

这两个值加上IP⾸部中的源端IP地址和⽬的端IP地址唯⼀确定⼀个TCP连接。

TCPIP协议分析知识点总结

TCPIP协议分析知识点总结

TCPIP协议分析知识点总结一、TCP/IP协议简介TCP/IP是一组用于网络通信的协议,它包括多个层次,每个层次都由一组相互关联、协同工作的协议组成,这些协议按照其功能分成不同的层次。

TCP/IP协议家族是互联网标准协议。

1.TCP/IP层次结构TCP/IP协议族是一个层次结构的协议族。

TCP/IP协议家族由四个层次组成,分别是网络接口层、网际层、传输层和应用层。

- 网络接口层:此层负责定义操作系统与网络硬件接口之间的通信方式。

- 网际层:此层的主要功能是进行数据包的寻址和路由。

即负责将数据发送到目的地址并最终将数据包传递给网络接口层。

- 传输层:此层负责在源和目的节点之间提供可靠的数据传输服务,常用的传输层协议包括TCP(传输控制协议)和UDP(用户数据报协议)。

- 应用层:此层包含了很多应用程序需要的协议,例如HTTP、FTP、TELNET、SMTP等。

2.TCP/IP通信特点TCP/IP协议族的特点包括:- 分层结构,每一层都有自己的功能和协议,各层之间相互关联、协同工作。

- 独立性,每个层次的协议都是独立的,修改其中一个层次的协议不会影响其他层次的协议。

- 开放性,TCP/IP协议族是一个开放的标准,任何人都可以使用该协议族进行通讯。

- 可靠性,TCP/IP协议族内部有多种机制保证数据传输的可靠性。

- 灵活性,TCP/IP协议族在实际应用中可以根据需要进行灵活的组合。

3.TCP/IP协议族的发展TCP/IP协议族的发展经历了多个阶段:- ARPANET阶段:TCP/IP最早是由美国国防部高级研究计划局(ARPA)于1969年开始建立的。

ARPA最初的目的是为了研究如何使不同类型的计算机互相通讯。

- TCP/IP阶段:ARPA提出了一个新的通讯协议,即TCP/IP协议。

1982年,TCP/IP成为国际标准。

- Internet阶段:1980年代末和1990年代初,TCP/IP协议开始在全球范围内使用,逐渐成为全球网络的标准协议。

TCPIP详解读书笔记(第三章 网际协议

TCPIP详解读书笔记(第三章 网际协议

TCP/IP详解读书笔记(第三章网际协议)第三章 IP:网际协议IP是TCP/IP协议族中最为核心的协议。

所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输(如图1所示)。

图1IP提供不可靠、无连接的数据报传送服务。

不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。

IP仅提供最好的传输服务。

如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。

任何要求的可靠性必须由上层来提供(如TCP)。

无连接(connectionless)的意思是IP并不维护任何关于后续数据报的状态信息。

每个数据报的处理是相互独立的。

这也说明,IP 数据报可以不按发送顺序接收。

如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。

IP首部IP数据报的格式如图2所示。

普通的IP首部长为20个字节,除非含有选项字段。

图2:IP数据报头部格式其中:●版本(Version)字段:占4比特。

用来表明IP协议实现的版本号,当前一般为IPv4,即0100。

●报头长度(Internet Header Length,IHL)字段:占4比特。

是头部占32比特的数字,包括可选项。

普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。

此字段最大值为60字节。

●服务类型(Type of Service ,TOS)字段:占8比特。

其中前3比特为优先权子字段(Precedence,现已被忽略)。

第8比特保留未用。

第4至第7比特分别代表延迟、吞吐量、可靠性和花费。

当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。

这4比特的服务类型中只能置其中1比特为1。

可以全为0,若全为0则表示一般服务。

服务类型字段声明了数据报被网络系统传输时可以被怎样处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCP/IP详解学习笔记(1)-基本概念为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。

就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。

计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。

只有把它们联合起来,电脑才会发挥出它最大的潜力。

于是人们就想方设法的用电线把电脑连接到了一起。

但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。

因而他们需要定义一些共通的东西来进行交流,TCP/IP 就是为此而生。

TCP/IP不是一个协议,而是一个协议族的统称。

里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。

电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。

TCP/IP协议分层提到协议分层,我们很容易联想到ISO-OSI的七层协议经典架构,但是TCP/IP协议族的结构则稍有不同。

如图所示TCP/IP协议族按照层次由上到下,层层包装。

最上面的就是应用层了,这里面有http,ftp,等等我们熟悉的协议。

而第二层则是传输层,著名的TCP和UDP协议就在这个层次(不要告诉我你没用过udp玩星际)。

第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据(后面会讲到)以确定传输的目标。

第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。

再往下则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等(这些我们就不用关心了,我们也不做网卡),所以有些书并不把这个层次放在tcp/ip协议族里面,因为它几乎和tcp/ip 协议的编写者没有任何的关系。

发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。

这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。

一些基本的常识在学习协议之前,我们应该具备一些基本知识。

互联网地址(ip地址)网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址)。

现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4 标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。

IPv4标准上,地址被分为五类,我们常用的是B 类地址。

具体的分类请参考其他文档。

需要注意的是IP地址是网络号+主机号的组合,这非常重要。

域名系统域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。

RFCRFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。

端口号(port)注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。

应用编程接口现在常用的编程接口有socket和TLI。

而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有多大的贡献。

TCP/IP详解学习笔记(2)-数据链路层数据链路层有三个目的:•为IP模块发送和接收IP数据报。

•为ARP模块发送ARP请求和接收ARP应答。

•为RARP发送RARP请求和接收RARP应答ip大家都听说过。

至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦)数据链路层的协议还是很多的,有我们最常用的以太网(就是平时我们用的网卡)协议,也有不太常见的令牌环,还有FDDI,当然,还有国内现在相当普及的PPP协议(就是adsl宽带),以及一个loopback协议。

联系linux里面的ifconfig -a命令,这个命令通常会得到如下的结果其中,eth0就是以太网接口,而lo则是loopback接口。

这也说明这个主机在网络链路层上至少支持loopback协议和以太网协议。

以太网(Ether-net)的定是指数字设备公司(Digital Equipment Corp.)、英特尔公司(Intel Corp.)和Xerox公司在1982年联合公布的一个标准,这个标准里面使用了一种称作CSMA/CD的接入方法。

而IEEE802提供的标准集802.3(还有一部分定义到了802.2中)也提供了一个CSMA/CD的标准。

这两个标准稍有不同,TCP/IP协议对这种情况的处理方式如下:•以太网的IP数据报封装在RFC894中定义,而IEEE802网络的IP数据报封装在RFC1042中定义。

•一台主机一定要能发送和接收RFC894定义的数据报。

•一台主机可以接收RFC894和RFC1042的封装格式的混合数据报。

•一台主机也许能够发送RFC1042数据报。

如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC 894分组。

可见,RFC1042在TCP/IP里面处于一个配角的地位。

这两种不同的数据报格式请参考教材。

ppp(点对点协议)是从SLIP的替代品。

他们都提供了一种低速接入的解决方案。

而每一种数据链路层协议,都有一个MTU(最大传输单元)定义,在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU,注意PPP的MTU并不是一个物理定义,而是指一个逻辑定义(个人认为就是用程序控制)。

可以用netstat来打印出MTU的结果,比如键入netstat -in1500 0 1774 0 0 0 587 0 016436 0 2667 0 0 0 2667 0 0就可以观察到eth0的MTU是1500。

而lo(环回接口)的MTU则是16436。

最后说说那个环回接口(loopback)。

平时我们用127.0.0.1来尝试自己的机器服务器好使不好使。

走的就是这个loopback接口。

对于环回接口,有如下三点值得注意:•传给环回地址(一般是127.0.0.1)的任何数据均作为I P输入。

•传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。

这是因为广播传送和多播传送的定义包含主机本身。

•任何传给该主机IP地址的数据均送到环回接口。

这一章还是很简单的,一般作为了解知识也就足够了,没必要抠的那么详细。

TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。

数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。

1.IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。

要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。

所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。

这是后话,暂且不提1.1.IP协议头如图所示挨个解释它是教科书的活计,我感兴趣的只是那八位的TTL字段,还记得这个字段是做什么的么?这个字段规定该数据包在穿过多少个路由之后才会被抛弃 (这里就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃。

这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64,Tracerouter这个工具就是用这个原理工作的,tranceroute的-m选项要求最大值是255,也就是因为这个 TTL在IP协议里面只有8bit。

现在的ip版本号是4,所以也称作IPv4。

现在还有IPv6,而且运用也越来越广泛了。

1.2.IP路由选择当一个IP数据包准备好了的时候,IP数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个合适的路径来"送货"的呢?最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。

至于是怎么直接传递的,这就要靠ARP协议了,后面会讲到。

稍微一般一点的情况是,主机通过若干个路由器(router)和目的主机连接。

那么路由器就要通过ip包的信息来为ip包寻找到一个合适的目标来进行传递,比如合适的主机,或者合适的路由。

路由器或者主机将会用如下的方式来处理某一个IP数据包1如果IP数据包的TTL(生命周期)以到,则该IP数据包就被抛弃。

2搜索路由表,优先搜索匹配主机,如果能找到和IP地址完全一致的目标主机,则将该包发向目标主机3搜索路由表,如果匹配主机失败,则匹配同子网的路由器,这需要“子网掩码(1.3.)”的协助。

如果找到路由器,则将该包发向路由器。

4搜索路由表,如果匹配同子网路由器失败,则匹配同网号(第一章有讲解)路由器,如果找到路由器,则将该包发向路由器。

5搜索陆游表,如果以上都失败了,就搜索默认路由,如果默认路由存在,则发包6如果都失败了,就丢掉这个包。

这再一次证明了,ip包是不可靠的。

因为它不保证送达。

1.3.子网寻址IP地址的定义是网络号+主机号。

但是现在所有的主机都要求子网编址,也就是说,把主机号在细分成子网号+主机号。

最终一个IP地址就成为网络号码+子网号+主机号。

例如一个B类地址:210.30.109.134。

一般情况下,这个IP地址的红色部分就是网络号,而蓝色部分就是子网号,绿色部分就是主机号。

至于有多少位代表子网号这个问题上,这没有一个硬性的规定,取而代之的则是子网掩码,校园网相信大多数人都用过,在校园网的设定里面有一个255.255.255.0的东西,这就是子网掩码。

子网掩码是由32bit的二进制数字序列,形式为是一连串的1和一连串的0,例如:255.255.255.0(二进制就是11111111.11111111.11111111.00000000) 对于刚才的那个B类地址,因为210.30是网络号,那么后面的109.134就是子网号和主机号的组合,又因为子网掩码只有后八bit为0,所以主机号就是IP地址的后八个bit,就是134,而剩下的就是子网号码--109。

相关文档
最新文档