TCPIP详解学习笔记,非常全

合集下载

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选路

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详解读书笔记(第二章

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详解笔记

【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详解读书笔记(第三章 网际协议

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》读书笔记

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个。

  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。

相关文档
最新文档