TCPIP详解学习笔记,非常全
TCPIP的知识梳理(按四层结构体系描述)

TCPIP的知识梳理(按四层结构体系描述)TCP/IP协议TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/⽹际协议)是指能够在多个不同⽹络间实现信息传输的协议簇。
TCP/IP协议不仅仅指的是TCP 和IP两个协议,⽽是指⼀个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP传输协议是严格来说是⼀个四层的体系结构,应⽤层、传输层、⽹络层和数据链路层都包含其中。
OSI参考模型与TCP/IP四层模型对⽐ ⼀、应⽤层协议该层存在的协议:HTTP,DNS,FTP,Telnet,SMTP,RIP,NFSHTTP协议:(后⾯专门⽤⼀篇⽂章详解HTTP和HTTPS)HTTP (HyperText Transfer Protocol 超⽂本传输协议) 基于 TCP,使⽤端⼝号 80 或 8080。
每当你在浏览器⾥输⼊⼀个⽹址或点击⼀个链接时,浏览器就通过 HTTP 协议将⽹页信息从服务器提取再显⽰出来,这是现在使⽤频率最⼤的应⽤层协议。
这个原理很简单:点击⼀个链接后,浏览器向服务器发起 TCP 连接;连接建⽴后浏览器发送 HTTP 请求报⽂,然后服务器回复响应报⽂;浏览器将收到的响应报⽂内容显⽰在⽹页上;报⽂收发结束,关闭 TCP 连接。
HTTP 报⽂会被传输层封装为 TCP 报⽂段,然后再被 IP 层封装为 IP 数据报。
HTTP 报⽂的结构:可见报⽂分为 3 部分:(1)开始⾏:⽤于区分是请求报⽂还是响应报⽂,请求报⽂中开始⾏叫做请求⾏,⽽响应报⽂中,开始⾏叫做状态⾏。
在开始⾏的三个字段之间都⽤空格分开,结尾处 CRLF 表⽰回车和换⾏。
(2)⾸部⾏:⽤于说明浏览器、服务器或报⽂主体的⼀些信息。
(3)实体主体:请求报⽂中通常不⽤实体主体。
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详解读书笔记(第二章

TCP/IP详解读书笔记(第二章)第二章链路层在TCP/IP协议族中,链路层主要有三个目的:(1)为IP模块发送和接收I P数据报;(2)为ARP模块发送ARP请求和接收ARP应答;(3)为RARP发送R ARP请求和接收RARP应答。
TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光纤分布式数据接口)及RS-232串行线路等。
以太网和IEEE 802封装以太网这个术语一般是指数字设备公司( Digital Equipment Corp.)、英特尔公司和Xerox公司在1982年联合公布的一个标准。
它是当今TCP/IP采用的主要的局域网技术。
它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with Collision Detection)。
它的速率为10 Mb/s,地址为48 bit。
IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。
这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。
在TCP/IP世界中,以太网IP数据报的封装是在RFC 894[Hornig 1984]中定义的,IEEE 802网络的IP数据报封装是在RFC 1042[Postel and Reynolds 19 88]中定义的。
主机需求RFC要求每台Internet主机都与一个10 Mb/s的以太网电缆相连接:1) 必须能发送和接收采用RFC 894(以太网)封装格式的分组。
2) 应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组。
3) 也许能够发送采用RFC 1042格式封装的分组。
如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC 894分组。
【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详解读书笔记(第三章 网际协议

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则表示一般服务。
服务类型字段声明了数据报被网络系统传输时可以被怎样处理。
C#基础知识之图解TCPIP》读书笔记

C#基础知识之图解TCPIP》读书笔记⼀、⽹络基础知识1、计算机使⽤模式的演变2、协议协议就是计算机与计算机之间通过⽹络实现通信事先达成的⼀种“约定”。
这种“约定”使那些由不同⼚商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。
反之,如果使⽤的协议不同,就⽆法通信。
3、分组交换分组交换是将⼤数据分割为⼀个个叫做包(Packet)的较⼩单位进⾏传输的⽅法。
这⾥所说的包,就如同我们平常在邮局⾥见到的邮包。
分组交换就是将⼤数据分装为⼀个个这样的邮包交给对⽅。
4、协议分层与OSI参考模型(1)协议分层就如同计算机软件中的模块化开发,OSI参考模型的建议是⽐较理想化的。
OSI是Open System Interconnection的缩写,意为开放式系统互联。
(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机⽹络通信的基本框架。
OSI模型把的⼯作分为7层,分别是、、⽹络层、、、和。
(2)OSI参考模型中每个层的作⽤:(3)7层通信实例:假设主机A的⽤户A要给主机B的⽤户B发送⼀封电⼦邮件:发送⽅从第7层、第6层到第1层由上⾄下按照顺序传输数据,⽽接收端则从第1层、第2层到第7层由下⾄上向每个上⼀级分层传输数据。
每个分层上,在处理由上⼀层传过来的数据时可以附上当前分层的协议所必须的“⾸部”信息。
然后接收端对收到的数据进⾏数据“⾸部”与“内容”的分离,再转发给上⼀分层,并最终将发送端的数据恢复为原装。
⼆、TCP/IP基础知识TCP(Transmission Control Protocol)和IP(Internet Protocol)是互联⽹的众多通信协议中最为著名的。
1、 TCP/IP的背景及历史2、TCP/IP标准化(1)具体含义,很多⼈都会认为TCP/IP是指TCP与IP两种协议,实际⽣活中有时也确实就是指这两种协议。
但是,很多情况下,它只是利⽤IP进⾏通信时所必须使⽤到的协议群的统称。
阿里大佬终于把TCPIP协议学习笔记整理出来了

阿里大佬终于把TCPIP协议学习笔记整理出来了一般来说,TCP/IP 是利用IP进行通信时所必须用到的协议群的统称。
具体点,IP或ICMP、TCP或UDP、TELENT或ETP、以及HTTP等都属于TCP/IP协议,而TCP/IP泛指这些协议。
TCP/IP协议分层模型网络协议通常分为不同层次进行开发,每一层分别负责不同的通信功能。
一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。
TCP/IP通常被认为是一个四层协议系统,如下表所示:层级对应的协议或应用负责的功能应用层Telnet、FTP和e-mail等负责处理特定的应用程序的细节运输层TCP 和 UDP 为两台主机上的应用程序提供端到端的通信网络层IP、ICMP 和 IGMP 处理分组在网络中的活动,例如分组的选路链路层设备驱动程序及接口层处理与传输媒介的物理接口细节通常情况下,应用程序就是一个用户进程,而下三层则一般在(操作系统)内核中执行,例如UNIX 操作系统。
除此之外,应用层与下三层还有一个关键不同在于:应用层关心的是应用程序的细节,而不是数据在网络中的传输活动,下三层对应用程序一无所知,但它们要处理所有的通信细节。
在TCP/IP协议族中,网络层IP提供的是一种不可靠的服务,也就是说,它只是尽快的将分组从源结点送到目的结点,但并不提供任何可靠性保证。
而另一方面,TCP在不可靠的IP层上提供了一个可靠的运输层。
为了提供这种可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。
由此可见,运输层和网络层分别负责不同的功能。
TCP/IP 的分层在 TCP/IP 协议族中,有很多中协议。
如下图所示:在 TCP/IP 协议族中,有很多中协议。
如下图所示:TCP 和 UDP 是两种最为著名的运输协议,二者都可以使用 IP 作为网络层协议。
虽然 TCP 使用不可靠的 IP 服务,但它却提供了一种可靠的运输层服务;UDP 为应用程序发送和接收数据包。
TCPIP详解读书笔记(第四章ARP:地址解析协议

TCPIP详解读书笔记(第四章ARP:地址解析协议TCP/IP详解读书笔记(第四章ARP:地址解析协议)当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的。
设备驱动程序从不检查IP数据报中的目的IP地址。
ARP为IP地址到对应的硬件地址(MAC)之间提供动态映射。
ARP高速缓存ARP高效运行的关键是由于每个主机上都有一个A R P高速缓存。
这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。
高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。
可以用arp -a命令来查看ARP高速缓存。
ARP的分组格式在以太网上解析IP地址时, ARP请求和应答分组的格式如图1所示:图1:用于以太网的ARP请求或应答分组格式以太网报头中的前两个字段是以太网的源地址和目的地址。
目的地址为全1的特殊地址是广播地址。
电缆上的所有以太网接口都要接收广播的数据帧。
两个字节长的以太网帧类型表示后面数据的类型。
对于ARP请求或应答来说,该字段的值为0x0806。
形容词hardware(硬件)和protocol(协议)用来描述ARP分组中的各个字段。
例如,一个ARP请求分组询问协议地址(这里是I P地址)对应的硬件地址(这里是以太网地址)。
硬件类型字段表示硬件地址的类型。
它的值为1即表示以太网地址。
协议类型字段表示要映射的协议地址类型。
它的值为0x0800即表示IP地址。
它的值与包含IP数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。
接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。
对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4。
操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP 应答(值为2)、RARP请求(值为3)和RARP应答(值为4)。
这个字段必需的,因为ARP 请求和ARP应答的帧类型字段值是相同的。
TCPIP学习笔记(1)

TCPIP学习笔记(1)TCP/IP入门(1)TCP/IP体系结构1)网络接口层物理层定义与传输媒体的接口有关的一些特性,即机械特性、电气特性、功能特性、过程特性,并需要完成并行传输和串行传输之间的转换。
数据链路层向该层用户提供透明的和可靠的数据传输服务。
透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠性是指在传输过程中将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,其具体的方法有帧同步、差错控制、流量控制、链路管理。
数据链路层中的主要协议有点对点协议PPP,CSMA/CD协议,以太网802.3。
2)网际层(IP层)网际层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网际层不提供服务质量的承诺,即所传输的分组可能出错、丢失、重复和失序,当然也不保证分组交付的时限。
网际层中主要协议有IP协议,地址解析协议ARP和网际控制报文协议ICMP等。
IP协议是网际层的核心,通过路由选择将下一跳IP封装后交给网络接口层。
IP 数据报是无连接服务。
ICMP是网际层的补充,可以回送报文。
用来检测网络是否通畅(使用ping命令)。
ARP是通过已知IP,寻找对于主机的MAC地址。
3)运输层运输层为应用进程之间提供端到端(进程到进程)的逻辑通信,并具有复用和分用的功能,即发送方不同的应用进程都可以使用同一个运输层协议传送数据;接收方的运输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
运输层还将对报文进行差错控制,以提供可靠传输。
运输层中主要协议有用户数据报协议UDP和传输控制协议TCP4)应用层应用层为用户提供应用程序。
应用层中主要协议有域名系统DNS,文件传输协议FTP,远程终端协议TELNET,超文本传输协议HTTP,简单邮件传送协议SMTP,邮件读取协议POP3和IMAP,动态主机配置协议DHCP等。
DNS:提供域名解析服务,提供域名到IP地址之间的转换,使用端口53FTP:在异构网络中任意计算机之间传送文件,使用端口21TELNET:提供用户远程登录服务,使用端口23,使用明码传送,保密性差、简单方便HTTP:用于实现万维网上的各种链接,即万维网客户程序与万维网服务器之间的连接,使用端口80SMTP/POP3、IMAP:提供邮件的传输,用来控制信件的发送、中转、从邮件服务器读取邮件DHCP:为新加入网络的计算机自动分配IP地址电路交换、报文交换与分组交换(1)电路交换的三个过程电路建立 -> 数据传输 -> 电路拆除在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)(2)报文交换报文交换方式的数据传输单位是报文,报文就是站点一次性要发送的数据块,其长度不限且可变。
TCP-IP笔记

第1章概述1、TCP/IP分层:应用层、//Telnet(远程登录)、FTP(文件传输协议)、e-mail运输层、//TCP(传输控制协议)、UDP(用户数据报协议)网络层、//IP(网络协议)、ICMP(Internet互联网控制报文协议)、IGMP (Internet组管理协议)。
链路层(数据链路层)。
//设备驱动程序及接口卡、以太网协议2、应用层-用户进程,下三层一般在操作系统内核中执行。
3、路由器:构造互连网最简单的方法是把两个或多个网络通过路由器进行连接,特殊的用于网络互连的硬件盒。
网桥:在链路层上对网络进行互连,而路由器是在网络层上对网络进行互连4、应用层和运输层使用端到端(End-to-end)协议,网络层提供逐跳(Hop-by-hop)协议5、TCP采用超时重传、发送和接收端到端的确认分组等机制。
网络层IP提供不可靠的服务,他只是尽可能地把分组从源结点送到目的结点,并不提供任何可靠性保证。
运输层和网络层分别负责不同的功能。
6、IP地址32bit:A:0.0.0.0-127.255.255.255—0网络号(7位)主机号(24位)B: 128.0.0.0-191.255.255.255———10网络号(14位)主机号(16位)C:192.0.0.0-223.255.255.255———110网络号(21位)主机号(8位)D: 224.0.0.0-239.255.255.255———1110多播组号(28位)E: 240.0.0.0-247.255.255.255———11110留待后用(27位)A类地址的第一个字节代表网络号,其中第一字节的第一位以0开始,也就是A类地址的二进制形式是以0....开头的,所以其网络号应该是2的7次方,也就是128,然后网络号不能全为0,然后去掉127开头的环回测试网络,所以A类地址的网络号为126.B类地址的前两个字节代表网络号,其中第一个字节的前两位固定以10开头的,所以其网络号是2的14次方,也就是16384个网络号,因为其以10开头,所以网络号不可能为全0及全1,所以不用减2,但是实际上前两位后全为0的网络号也就是1000 0000 0000 0000,也就是128.0的网络号是不可指派的,所以B类网络号为16383个。
TCPIP详解读书笔记(第七章 Ping程序

TCP/IP详解读书笔记(第七章Ping程序)Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达。
该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。
Ping程序我们称发送回显请求的Ping程序为客户,而称被Ping的主机为服务器。
大多数的TCP/IP实现都在内核中直接支持Ping服务器,这种服务器不是一个用户进程。
ICMP回显请求和回显应答报文如图1所示。
图1:ICMP回显请求和回显应答报文格式Unix系统在实现ping程序时是把ICMP报文中的标识符字段置成发送进程的ID号。
这样即使在同一台主机上同时运行了多个ping程序实例, ping程序也可以识别出返回的信息。
序列号从0开始,每发送一次新的回显请求就加1。
ping程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失、失序或重复。
IP是一种最好的数据报传递服务,因此这三个条件都有可能发生。
IP记录路由选项ping程序为我们提供了查看IP记录路由(RR)选项的机会。
大多数不同版本的ping程序都提供-R选项,以提供记录路由的功能。
它使得ping程序在发送出去的IP数据报中设置IPRR选项(该IP数据报包含ICMP回显请求报文)。
这样,每个处理该数据报的路由器都把它的IP地址放入选项字段中。
当数据报到达目的端时, IP地址清单应该复制到ICM P回显应答中,这样返回途中所经过的路由器地址也被加入清单中。
当ping程序收到回显应答时,它就打印出这份IP地址清单。
最大的问题是IP首部中只有有限的空间来存放IP地址。
IP首部中的首部长度字段只有4bit,因此整个IP首部最长只能包括15(4bit全为1,8+4+2+1=1 5)个32bit长的字(即60个字节)。
由于IP首部固定长度为20字节(参加第三章的IP首部格式), RR选项用去3个字节,这样只剩下37个字节(60-20-3)来存放IP地址清单,也就是说只能存放9(4×9)个IP地址。
TCPIP学习笔记

《TCP/IP详解》学习笔记1——链路层重点知识:链路层的作用、以太网的封装、SLIP和PPP协议以及链路的重要特性(MTU和串行线路吞吐量的计算)。
1、链路层的作用为IP模块发送和接收IP数据报;为ARP模块发送ARP请求和接收ARP应答;为RARP模块发送RARP请求和接收RARP应答;2、以太网的封装SA(6) | DA(6) | TYPE(2) | DA TA(46-1500) | CRC(4)两字节的TYPE字段定义了后续数据的类型,用来说明生成数据的网络层协议。
0x0800表示数据类型为IP数据报,0x0806表示ARP请求/应答。
此外,以太帧中数据段部分有最小长度要求46字节,在数据长度不够时需插入填充字节。
3、两种协议SLIP——串行线路协议;PPP是点对点协议。
两种协议都是在串行线路上封装IP数据报的方法,提供了一种低速接入的解决方案。
以这种方式入网时,用户需要的设备包括一台PC、一条电话线、一台调制解调器(MODEM)、一根RS-232电缆,利用调制解调器通过公共电话网进行Internet连接。
使用SLIP或PPP协议与主机通信,使本地PC具有IP地址,成为Internet的一部分。
以这种方式上网的用户,每次在连接Internet时会被临时分配到一个IP地址,这样的地址称为动态IP地址。
4、链路的重要特性每一种数据链路层协议对数据帧的长度都有一个限制,其最大值称为MTU,超过这个值就要进行分片。
串行线路吞吐量的计算:如果线路速率是9600 b/s,而一个字节有8bit,加上一个起始比特和一个停止比特,那么线路的速率就是9600 / ( 8 + 2 ) = 960 B/s(字节/秒)。
如果传输1024字节就需要1024 / 960 = 1066 ms。
使用环回接口的原因:为了标识和管理网络设备(如路由器、pc),我们通常会利用到这些设备的接口(包括物理接口和逻辑接口)上设置的IP地址。
TCPIP基本知识总结

技术总结一.IP网络互联基础1 . IP地址:配置在主机,设备接口上的逻辑地址;由32位二进制组成,用点分十进制表示。
IP地址分成网络号和主机号两个部分:网络号表示某个IP子网,主机号表示本子网的某台主机。
2 . 子网掩码:用来区分网络号和主机号。
用连续的“1”表示IP地址的网络号,用连续的“0”表示主机号。
3 . 网络地址:主机号全为0的IP地址定向广播地址:主机号全为1的IP地址4 . 数据包的封装与解封装5 . 同一网段主机互访分析:同一网段的主机互访,直接进行MAC封装,就可到达。
不同网段的主机互访分析:不同网段的主机互访,要经过网关中转后才能到达。
二.层次化与数据流分析1 .层次化配置:a.基本信息配置:密码(console/Telnet/enable)主机名,时区等。
b.接口配置与链路测试:局域网接口配置(物理层——链路层——网络层——打开接口)局域网链路测试,广域网接口配置与链路测试。
c.路由配置与测试:路由配置(IGP/BGP)全网连通性测试,路径跟踪测试。
d.上层业务配置与测试2 . 层次化排错:a.5两个路由器之间的链路是否通?b.两个路由器之间的路由是否通?c.上层是否配置了控制策略?3 . 层次化方法:先分析高层网络,分析时,把底层网络当做云图来看待。
再逐个打开底层网络云图,进行底层网络分析。
4 .层次化数据流分析三.IP地址分配1 .IP地址分类2.私有地址:3.IP子网划分:a.定长子网掩码划分b.变长子网掩码划分四.TCP/IP协议基础1.OSI参考模型处理数据格式,数据加密等建立,维护和管理会话端到端连接寻址和路由选择提供介质访问,链路管理等比特流传输2.TCP/IP协议栈应用层:DHCP、DNS、Telnet、HTTP、FTP、TFTP、SMTP......传输层:TCP、UDP网络层:ARP,IP,ICMP数据链路层:PPP,HDLC,ATM........物理层:V.35......3.IP特点IP是无连接的,无序的,不可靠的,提供尽力而为的服务。
《TCPIP详解》学习笔记

一.第三章:《IP,网际协议》问题一:如何理解IP的不可靠和无连接。
不可靠:指的是不能保证数据报能成功地到达目的地。
发生错误时候,丢弃该数据包,发送ICMP消息给信源端。
可靠性由上层提供。
无连接:IP不维护关于后续数据报的状态信息。
体现在,IP数据可以不按顺序发送和接收。
A发送连续的数据报,到达B不一定是连续的,来回路由选择可能不一样,路线也不一样,到达先后顺序也不一样。
问题二:IP报文的格式和各个字段的含义。
版本号:IPV4就是4,IPV6就是6 (4)首部长度:4个字节为单位。
最小为5,最大为15。
所以最小长度20个字节,最大为60个字节。
(4)服务类型:Qos用,目前不怎么使用。
(8)总长度:字节为单位。
最多可以传送65535字节的IP数据包。
(16)标识字段(8)标志(3)段偏移(5)与分片有关。
TTL:经过一个路由器减一。
字段为0时,数据报被丢弃,并且发送ICMP报文通知源主机。
目的是防止数据报在选路时无休止地在网络中流动。
(8)协议字段:区分上层协议(8)首部校验和:对首部进行校验。
(16)对比:ICMP,IGMP,TCP,UDP:对首部和数据进行校验。
源地址:(32)目的地址:(32)问题三:为什么IP首部中要有总长度字段?因为一些数据链路(以太网)需要填充一些数据以达到最小长度。
因为以太网帧的最小长度是46个字节,但是IP长度可能更短,所以需要总长度来确定IP数据部分的内容。
?问题四:几个TTL值以及其特殊作用?TTL=0:数据报被丢弃,并发送ICMP报文通知源主机。
TTL=1:TTL=255:问题五:IP首部校验和怎么计算的,与ICMP,IGMP,TCP,UDP的首部校验和有什么区别与共同点?(1)把校验和字段臵0。
(2)对首部中每个16位比特进行二进制反码求和。
(3)结果存在检验和字段中。
(4)收到一份IP数据包后,同样对首部中每个16bit二进制反码求和。
(5)最后结果全为1,表示正确,否则表示错误。
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协议开始在全球范围内使用,逐渐成为全球网络的标准协议。
TCP IP详解学习笔记(3)IP协议ARP协议RARP协议 电脑资料

TCP IP详解学习笔记(3)IP协议ARP协议RARP协议电脑资料把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ether网卡Mac地址,IP那么承载要发送的,IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。
要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。
所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。
这是后话,暂且不提如下图现在的ip版本号是4,所以也称作IPv4。
现在还有IPv6,而且运用也越来越广泛了。
当一个IP数据包准备好了的时候,IP数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个适宜的路径来"送货"的呢?最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。
至于是怎么直接传递的,这就要靠ARP协议了,后面会讲到。
稍微一般一点的情况是,主机通过假设干个路由器(router)和目的主机连接。
那么路由器就要通过ip包的信息来为ip包寻找到一个适宜的目标来进展传递,比方适宜的主机,或者适宜的路由。
路由器或者主机将会用如下的方式来处理某一个IP数据包这再一次了,ip包是不可靠的。
因为它不保证送达。
还记得数据链路层的以太网的协议中,每一个数据包都有一个MAC 地址头么?我们知道每一块以太网卡都有一个MAC地址,这个地址是唯一的,那么IP包是如何知道这个MAC地址的?这就是ARP协议的工作。
ARP(地址解析)协议是一种解析协议,本来主机是完全不知道这个IP对应的是哪个主机的哪个接口,当主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存),如果查询的IP-MAC值对不存在,那么主机就向网络发送一个ARP协议播送包,这个播送包里面就有待查询的IP地址,而直接收到这份播送的包的所有主机都会查询自己的IP地址,如果收到播送包的某一个主机发现自己符合条件,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP播送的主机,而播送主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。
TCPIP学习笔记

TCP/IP学习笔记TCP/IP学习笔记——第一部分一、 TCP/IP结构:TCP/IP是一个四层协议,结构如下:1、应用层:各种应用程序和协议,如Http、FTP等。
2、传输层:TCP和UDPTCP提供一种可靠的运输层服务,但UDP是不可靠的,不能保证数据报到正确到达目的地。
3、网络层:IP、IGMP、ICMPIP提供的是一种不可靠的服务,也就是尽可能块地把分组从源节点送到目的节点,但并不提供任何可靠性保证。
ICMP是IP的附属协议,主要用来交换错误报文,IGMP是组管理协议,用来将UDP数据到多个主机。
4、链路层:设备驱动程序和网卡等二、 IP地址和子网掩码要学习TCP/IP协议,首先要提到的是IP地址。
每台主机的IP地址是一个32位的二进制数。
每个IP地址被分割分:前缀和后缀。
前缀用来确定计算机从属的物理网络,后缀用来确定网络上单独的计算机。
互联网上每一个物理有一个唯一的值作为网络号,该网络号必须全球一致。
1、IP地址分类:IP地址分位五类:A类、B类、C类、D类、E类,其中A类、B类和C类为基本类,D类用于多播,E类属于保现在不用。
它们的格式如下(其中*代表网络号):A类:0******* XXXXXXXX XXXXXXXX XXXXXXXXB类:10****** ******** XXXXXXXX XXXXXXXXC类:110***** ******** ******** XXXXXXXXD类:1110**** XXXXXXXX XXXXXXXX XXXXXXXXE类:1111**** XXXXXXXX XXXXXXXX XXXXXXXX这样,A类地址的范围为:0.0.0.0-127.255.255.255B类地址的范围为:128.0.0.0-191.255.255.255C类地址的范围为:192.0.0.0-223.255.255.255D类地址的范围为:224.0.0.0-239.255.255.255E类地址的范围为:240.0.0.0-247.255.255.266◆几个特殊IP地址网络地址:IP地址中主机地址全为0的地址,如128.211.0.0。
TCPIP详解学习笔记(11-13)

TCP/IP 详解学习笔记(11)-TCP 交互数据流,成块数据流目前建立在TCP 协议上的网络协议特别多,有telnet ,ssh ,有ftp,有http 等等。
这些协议又可以根据数据吞吐量来大致分成两大类:(1) 交互数据类型,例如telnet ,ssh ,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。
(2) 数据成块类型,例如ftp,这种类型的协议要求TCP 能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率。
针对这两种情况,TCP 给出了两种不同的策略来进行数据传输。
1.TCP 的交互数据流对于交互性要求比较高的应用,TCP 给出两个策略来提高发送效率和减低网络负担:(1)捎带ACK 。
(2)Nagle 算法(一次尽量多的发数据)。
通常,在网络速度很快的情况下,比如用lo 接口进行telnet 通信,当按下字母键并要求回显的时候,客户端和服务器将经历发送按键数据->服务器发送按键数据的ack -> 服务器端发送回显数据-> 客户端发送回显数据的ACK 的过程,而其中的数据流量将是40bit + 41bit+41bit+40bit = 162bit ,如果在广域网里面,这种小分组的TCP 流量将会造成很大的网络负担。
1.1.捎带ACK 的发送方式这个策略是说,当主机收到远程主机的TCP 数据报之后,通常不马上发送ACK 数据报,而是等上一个短暂的时间,如果这段时间里面主机还有发送到远程主机的TCP 数据报,那么就把这个ACK 数据报“捎带”着发送出去,把本来两个TCP 数据报整合成一个发送。
一般的,这个时间是200ms 。
可以明显地看到这个策略可以把TCP 数据报的利用率提高很多。
1.2.Nagle 算法上过bbs 的人应该都会有感受,就是在网络慢的时候发贴,有时键入一串字符串以后,经过一段时间,客户端“发疯”一样突然回显出很多内容,就好像数据一下子传过来了一样,这就是Nagle 算法的作用。
TCPIP协议详解笔记

,由下而上分别为网络接口层、网络层、传输层、应用层,如图1-17另外,为使广播量最小,ARP维护IP地址到媒体访问控制地址映射的缓存以便将来使用。
ARP缓存可以包含动态和静态项目。
动态项目随时间推移自动添加和删除。
静态项目一直保留在缓存中,直到重新启动计算机为止。
每个动态ARP缓存项的潜在生命周期是10分钟。
新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP 缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。
在工作站PC的Windows环境中,可以使用命令“arp-a”查看当前的ARP缓存,如图1-19所示。
在路由器和交换机中可以用show arp完成相同的功能。
下面举个例子:ARP和RARP协议的工作原理。
两个位于同一个物理网络上运行TCP/IP的主机,如图1-20所示,主机A和主机B。
主机A分配的IP地址是192.168.1.1,主机B分配的IP地址是192.168.1.2。
图1-19 查看ARP缓存图1-20 ARP工作原理解析当主机A要与主机B通信时,以下步骤可以将主机B软件指定的地址(192.168.1.2)解析成主机B硬件指定的媒体访问控制地址。
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。
然后A主机在自己的本地ARP缓存中检查主机B的匹配硬件地址。
第2步:如果主机A在缓存中没有找到映射,它将询问“192.168.1.2的硬件地址是什么?”从而将ARP请求帧广播到本地网络上的所有主机。
源主机A的硬件和软件地址都包括在ARP请求中。
本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。
如果主机未找到匹配值,它将丢弃ARP 请求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。