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

合集下载

tcpip协议详解,pdf

tcpip协议详解,pdf

竭诚为您提供优质文档/双击可除tcpip协议详解,pdf篇一:tcpip详解-卷一-协议-3.11小结3.11小结本章开始描述了ip首部的格式,并简要讨论了首部中的各个字段。

我们还介绍了ip路由选择,并指出主机的路由选择可以非常简单:如果目的主机在直接相连的网络上,那么就把数据报直接传给目的主机,否则传给默认路由器。

在进行路由选择决策时,主机和路由器都使用路由表。

在表中有三种类型的路由:特定主机型、特定网络型和默认路由型。

路由表中的表目具有一定的优先级。

在选择路由时,主机路由优先于网络路由,最后在没有其他可选路由存在时才选择默认路由。

ip路由选择是通过逐跳来实现的。

数据报在各站的传输过程中目的ip地址始终不变,但是封装和目的链路层地址在每一站都可以改变。

大多数的主机和许多路由器对于非本地网络的数据报都使用默认的下一站路由器。

a类和b类地址一般都要进行子网划分。

用于子网号的比特数通过子网掩码来指定。

我们为此举了一个实例来详细说明,即作者所在的子网,并介绍了变长子网的概念。

子网的划分缩小了internet路由表的规模,因为许多网络经常可以通过单个表目就可以访问了。

接口和网络的有关信息通过ifconfig和netstat命令可以获得,包括接口的ip地址、子网掩码、广播地址以及mtu等。

在本章的最后,我们对internet协议族潜在的改进建议—下一代ip进行了讨论。

习题3.1环回地址必须是127.0.0.1吗?3.2在图3-6中指出有两个网络接口的路由器。

3.3子网号为16bit的a类地址与子网号为8bit的b类地址的子网掩码有什么不同?3.4阅读RFc1219[tsuchiya1991],学习分配子网号和主机号的有关推荐技术。

3.5子网掩码255.255.0.255是否对a类地址有效?3.6你认为为什么3.9小节中打印出来的环回接口的mtu要设置为1536?3.7tcp/ip协议族是基于一种数据报的网络技术,即ip 层,其他的协议族则基于面向连接的网络技术。

《图解TCPIP》读书笔记

《图解TCPIP》读书笔记

《图解TCPIP》读书笔记一.写在前面昨天晚上读完《图解TCP/IP》后就想,应该和TCP/IP协议簇的理论和通信过程做个了断,给自己写一篇读书笔记吧,坐到电脑面前,又深感无力,因为我深知自己没有能力用一篇简短的笔记,来描述图解TCP/IP讲了什么。

那我只能就【第一次阅读图解TCP/IP】给我带来了什么来做一次笔记,当然希望将来能抽出时间,阅读第二遍。

和《TCP/IP详解》相比,实在的说,去年根本看不懂详解,根本看不懂....,但是图解这本书,对于有一定网络基础的人来说,看了真的会感到豁然开朗。

就像学C#的时候,读一读CLR的感觉。

比如从前写socket的时候,开始我想象不到socket是一个什么样的概念,也不明白为什么说它是抽象层。

我也不能彻底理解,websocket和socket的区别,两个层面的东西嘛。

我也曾不能理解,http报文如何通过并利用TCP/IP协议簇的一系列协议从上游到下游,即使在阅读了《图解HTTP》后,很多内容也是非常疑惑的。

甚至连在学校学的数电模电传递高低电压,也没能被我联想到物理层上。

在读书的过程中,自己会挑一些印象深刻的,和对自己比较重要的部分截图到有道云笔记,每次再翻开书的时候,先把之前的截图笔记撸两眼。

二.什么是协议?如何通信?协议就是这P那P的Protocol,无论是OSI七层模型还是TCP/IP 四层模型,上下层之间的交互所遵循的约定叫做【接口】,同一层之间所遵循的约定叫做【协议】,所以你可以说TCP是传输层协议,HTTP是网络层协议,你使用Socket 一套API调用TCP进行通信叫做调用API接口,还有我们最常见的Web请求,使用的叫做Http【协议】,为什么不叫做Http【接口】,因为其通信属于在应用层到应用层,使用的叫做,各自通过【接口】逐层处理报文数据->TCP数据段->IP数据包->链路数据帧->物理比特位,在流经各层接口时,附带上该层的首部,以便在到达目标时,再由各层逐渐剥去首部,恢复原有高层次的数据表现形式,比如数据报。

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

TCPIP详解学习笔记

TCP/IP详解学习笔记(1)-基本概念TCP/IP详解学习笔记(2)-数据链路层TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议TCP/IP详解学习笔记(4)-ICMP协议,ping和TracerouteTCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节TCP/IP详解学习笔记(6)-UDP协议TCP/IP详解学习笔记(7)-广播和多播,IGMP协议TCP/IP详解学习笔记(8)-DNS域名系统TCP/IP详解学习笔记(9)-TCP协议概述TCP/IP详解学习笔记(10)-TCP连接的建立与中止TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流TCP/IP详解学习笔记(12)-TCP的超时与重传TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器TCP/IP详解学习笔记(1)-基本概念为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。

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

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

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

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

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

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

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

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

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

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

如图所示:ISO-OSI的七层协议架构TCP/IP协议族应用层Application (X.400, FTAM, VT)应用层Application (SMTP, TELNET, FTP)PresentationSessionTransport传输层Transport(Transmission ControlProtocol)Network网络层Internet(Internet Protocol)Data Link数据链路层NetworkInterfacePhysical物理层HardwareTCP/IP协议族按照层次由上到下,层层包装。

【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学习(四)TCP缓冲区大小及限制

TCPIP学习(四)TCP缓冲区大小及限制

/ysu108/article/details/7764461这个问题在前面有的部分已经涉及,这里在重新总结下。

主要参考UNIX网络编程。

(1)数据报大小IPv4的数据报最大大小是65535字节,包括IPv4首部。

因为首部中说明大小的字段为16位。

IPv6的数据报最大大小是65575字节,包括40字节的IPv6首部。

同样是展16位,但是IPv6首部大小不算在里面,所以总大小比IPv4大一个首部(40字节)。

(2)MTU许多网络有一个可由硬件规定的MTU。

以太网的MTU为1500字节。

有一些链路的MTU 的MTU可以由认为配置。

IPv4要求的最小链路MTU为68字节。

这允许最大的IPv4首部(包括20字节的固定长度部分和最多40字节的选项部分)拼接最小的片段(IPv4首部中片段偏移字段以8个字节为单位)IPv6要求的最小链路MTU为1280字节。

(3)分片(fragmentation)当一个IP数据报从某个接口送出时,如果它的大小超过相应链路的MTU,IPv4和IPv6都将执行分片。

这些片段在到达终点之前通常不会被重组(reassembling)。

IPv4主机对其产生的数据报执行分片,IPv4路由器则对其转发的数据报进行分片。

然后IPv6只有主机对其产生的数据报执行分片,IPv6路由器不对其转发的数据报执行分片。

IPv4首部的“不分片”(do not fragment)位(即DF位)若被设置,那么不管是发送这些数据报的主机还是转发他们的路由器,都不允许对它们分片。

当路由器接收到一个超过其外出链路MTU大小且设置了DF位的IPv4数据报时,它将产生一个ICMPv4“destination unreachable,fragmentation needed b ut DF bit set”(目的不可到达,需分片但DF位已设置)的出错消息。

既然IPv6路由器不执行分片,每个IPv6数据报于是隐含一个DF位。

《TCPIP详解》读书笔记

《TCPIP详解》读书笔记

《TCPIP详解》读书笔记1. ⽹络协议的分层,有四个层次,从下向上分别是:链路层:也称作数据链路层或⽹络接⼝层。

主要处理物理接⼝的细节⽹络层:也称作互联⽹层,处理分组在⽹络中的活动。

在TCP/IP协议族中⽹络层协议包括IP、ICMP和IGMP。

运输层:为两台主机上的应⽤程序提供端到端的通信。

在TCP/IP协议族中有两个不同的传输协议,TCP和UDP。

应⽤层:负责处理特定的应⽤程序细节,TCP/IP的实现都会提供Telnet、FTP、SMTP、SNTP等通⽤应⽤程序。

其中⽹络层和运输层的最⼤区别是:⽹络层(IP)提供点到点的服务,运输层(TCP、UDP)提供端到端的服务。

2.在TCP/IP协议族中,IP提供不可靠的服务,尽可能快的把分组从源节点送到⽬的节点,不提供任何可靠性保证。

TCP在IP层之上,采⽤了超时重传、发送和接收端到端的确认分组机制,提供了可靠的服务。

3.应⽤程序使⽤TCP传送数据时,数据被送⼊协议栈中,逐个通过每⼀层直到被当做⼀串⽐特流送⼊⽹络。

每⼀层对收到的数据都增加⼀些⾸部信息(有时还增加尾部信息)。

UDP数据与TCP数据基本⼀致。

唯⼀的不同是UDP传给IP的信息单元称作UDP数据包,⽽且UDP⾸部为8字节。

4.IP提供不可靠、⽆连接的数据报传输服务:不可靠:不能保证IP数据报能成功到达⽬的地。

简单的错误处理算法,丢弃数据报,发送ICMP消息给信息源。

⽆连接:IP不维护任何关于后续数据报的状态信息。

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

数据报可以不按发送顺序接收。

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

UDP应⽤程序产⽣的数据报长度保持不变。

b.发出⼀个段后,启动⼀个定时器等待⽬的端确认收到该报⽂段,如未能及时收到确认,将重发报⽂段。

c.当TCP收到另⼀端的数据,将发送⼀个确认(通常推迟⼏分之⼀秒)。

d.TCP将保持它⾸部和数据的校验和。

如果收到的校验和有差错,TCP将丢弃这个报⽂段且不发送收到确认。

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进⾏通信时所必须使⽤到的协议群的统称。

《图解TCP_IP_第5版》读书笔记

《图解TCP_IP_第5版》读书笔记

《图解TCP_IP_第5版》读书笔记TCP IP读书摘要:1.操作系统作⽤:CPU管理内存管理计算机外围设备的管理2.⾯向有连接⽅式电话通信⾯向⽆连接⽅式寄包裹3.电路交换机分组交换机4.单播⼴播多播任播5.⽹关:协议转换6.中继器:repeater 调整和放⼤信号。

7.集线器:中继集线器8.BackBone:⾻⼲ Stub:末端异构⽹络的连接:异构⽹络通过IX进⾏连接起来。

IX ⽹络交换中⼼ Internet ExchangeNOC: ⽹络操作中⼼ Network Operation CenterISP:Internet Service ProviderNIC ⽹卡9.远程登录协议:TELNET SSH10.包⾸部:发送端内核接收端地址信息上⼀层的协议类型信息11.SNS 社交⽹络 Social NetWork Service12.⽹络的连接和构成的形态称为拓扑! 13.介质共享⽹络⾮介质共享⽹络14.HDMI ⾼清晰度多媒体接⼝15.IPV6:更⾼版本的IP协议。

16.路由:中转分组数据包将分组数据发送到最终⽬标地址的功能。

IP数据包:旅⾏者路由器:车站和⼯作⼈员17.⼴播地址:IP全部都为1多播:IP没有主机标识18.⼴播:同⼀个⼦⽹(⽹段)多播:可以不是同⼀个⼦⽹19.IP地址分类:A类地址前8位代表⽹络标识B类地址前16位C类地址前24位20.路由充当DHCP服务器。

哦! 21.IP隧道:⽹络层⾸部后继续追加⽹络层⾸部的通信⽅法。

22.TCP窗⼝⼤⼩:⽆需等待确认应答⽽可以继续发送数据的最⼤值。

4个段。

这样就不必每个段都确认了! 23.慢启动! TCP协议的⼀种机制,通过丢包率来判断,所以下载东西的时候刚开始速度⽐较慢。

24.chunk 块25.距离向量算法链路状态算法26.TSS:分时系统 Time Sharing System远程登录: SSH协议27.VPN:virtual private network 虚拟专⽤⽹28.SMTP:邮件协议你的邮件到了邮件服务器,对⽅区域的邮件服务器,然后对⽅上线,接收到邮件。

TCPIP详解读书笔记(第四章ARP:地址解析协议

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应答的帧类型字段值是相同的。

TCP-IP笔记

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学习笔记

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

《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,表示正确,否则表示错误。

(完整word版)TCPIP答案

(完整word版)TCPIP答案

1-1 你认为在因特网的发展过程中,哪几件事对其发展起到了非常重要的作用?1—2 什么是数字地球?数字地球是按地理空间位置,以极高的分辨率(1米左右)对大地进行选点抽样,将抽样点上的自然资源信息,社会资源信息作为该点的属性输入到计算机中,然后对这些信息进行统筹安排,抽样分析和逻辑组合,最终为决策者提供服务。

虚拟现实技术是实现数字地球的关键技术之一.1-3 中国国内第一个被IETF认可的RFC文档是什么文档?1-4 与因特网相关的机构IAB、IETF、IRTF、ISOC、InterNIC、ICANN、W3C的主要工作分别是什么?1—5 RFC文档有哪几种可能的状态?各种状态的含义是什么?RFC文档共有8种状态。

3个状态属于标准化轨迹,3个状态属于非标准化轨迹,2个状态为其他状态。

(1)标准化轨迹由3个成熟级构成,由低到高分别为提案标准、草案标准和标准。

提案标准经过了深入的审查过程,收到多组织关注并认为有价值。

但在成为因特网标准之前,还可能有很大变化. (2)非标准轨迹分为实验性的规范,信息性的规范,历史性的规范。

实验性规范是研究和开发工作的归档记录。

信息性的规范并不表示得到了英特网组织的推荐和认可,是一些因特网组织以外的协议组织和提供者提出的未纳入因特网标准的规范可以以这种规范发布。

历史性的规范已经被更新的规范所取代.(3)其他状态。

有一些RFC文档专门用于对因特网组织机构商议结果进行标准化,为当前最佳实现BCP。

还有一些RFC文档未被分类,其状态被标记为未知性(UNKNOWN),如因特网早起RFC 文档。

2-1 网络协议的对等实体之间是如何进行通信的?2—2 协议分层有什么好处?网络协议的分层有利于将复杂的问题分解成多个简单的问题,从而分而治之;分层有利于网络的互联,进行协议转换时可能只涉及某一个或几个层次而不是所有层次;分层可以屏蔽下层的变化,新的底层技术的引入,不会对上层的应用协议产生影响。

TCPIP学习笔记

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知识点总结

tcpip知识点总结

tcpip知识点总结TCP/IP是一种广泛使用的网络通信协议,它是互联网的基础。

任何与互联网相关的事物都离不开TCP/IP协议。

本文将对TCP/IP协议进行全面的介绍,包括其基本概念、协议栈、每个层级的功能和协议、TCP/IP的工作原理等方面的知识点。

一、基本概念1.TCP/IP协议是一个协议族,它包含了多个协议,其中包括TCP、IP、UDP、ICMP等。

这些协议共同构成了互联网通信的基础架构。

2.TCP/IP协议是一个分层协议,它分为四个层次,分别是网络接口层、网络层、传输层和应用层。

每个层次都有自己的功能和对应的协议。

3.TCP/IP协议是面向连接的、可靠的协议。

它能够保证数据的顺序和可靠性,确保数据在传输过程中不会丢失或损坏。

4.TCP/IP协议的基本单位是数据包。

数据包是数据在网络上传输的最小单位,每个数据包包含有源地址、目标地址、数据和校验码等信息。

5. TCP/IP协议的工作模式分为客户端/服务器模式和对等模式。

在客户端/服务器模式中,客户端向服务器发起请求,服务器接收请求并返回数据;在对等模式中,两个节点彼此之间可以发起请求并返回数据。

二、协议栈TCP/IP协议栈是TCP/IP协议族中各个协议按层次结构组织起来的总称,通常用于形象地表示各个协议之间的关系。

1.网络接口层网络接口层是TCP/IP协议栈的最底层,它负责管理网络接口硬件和数据的物理传输。

它和硬件设备交互,将数据帧传输到物理网络中。

2.网络层网络层负责数据的路径选择和流量控制。

它的主要协议有IP协议、ARP协议和ICMP协议。

其中,IP协议负责数据的封装和分片,ARP协议负责IP地址和MAC地址的映射,ICMP协议用于网络故障的检测和报告。

3.传输层传输层负责数据的可靠传输和流量控制。

它的主要协议有TCP和UDP。

其中,TCP协议提供面向连接的、可靠的传输服务,UDP协议提供非连接的、不可靠的传输服务。

4.应用层应用层是TCP/IP协议栈的顶层,它负责处理特定的应用程序数据。

TCPIP笔记

TCPIP笔记
传输层:的应用程序。
对应的端口号
ftp服务器的tcp端口号是21,
telnet服务器的tcp端口号是23,
tftp服务器的UDP端口号是69,
知名的端口号范围是1~1023,
大多数TCP/IP实现给临时端口分配1024~5000之间的端口号,
大于5000的端口号是为其他服务器预留的(Internet上并不常用的服务),
小结:在一个互联网上,每个接口都用I P地址来标识,域名系统为主机名和I P地址之间提供动态的映射,端口号用来标识互相通信的应用程序。服务器使用知名端口号,而客户使用临时设定的端口号。
网络接口层:根据以太网首部中的帧的类型进行分用;首部中用16bit区别,区别ARP、IP、RARP;
数据链路层:根据ip首部中的协议值进行分用;首部中用8bit区别,主要区别ICMP、IGMP、TCP、UDP协议;1表示为ICMP协议, 2表示为IGMP协议, 6表示为TCP协议, 17表示为UDP协议。

TCPIP协议详解笔记

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

/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可以表述为一个没有选择确认或否认的滑动窗口协议。

我们说TCP缺少选择确认是因为TCP首部中的确认序列号表示发方已经成功收到字节,但还不包含确认序号所指的字节。

当前还无法对数据流中选定的部分进行确认。

例如,如果1~1024字节已经成功收到,下一个报文段中包含序号从2049~3072的字节,收端并不能确认这个新的报文段。

它所能做的就是发回一个确认序号为1025的ACK。

它也无法对一个报文进行否认。

例如,如果收到包含1025~2048字节的报文段,但它的检验和错,TCP收端所能做的就是发回一个确认序号为1025的ACK。

”这段话也好很地解释了前面提到的确认序列号的问题。

2. 连接的建立与终止接下来就是著名的tcp建立连接的三次握手了。

用时间序列图来表示最清楚不过了:tcp连接的其中一方发起主动连接,它填写目的端口和源端口号,初始化序列号,设置SYN位,并设置了mss选项,将该TCP段发给连接的另一方。

另一方收到tcp段后,与主动连接方做了同样的事情,同时携带ACK,把对主动连接方的初始序号加1填入确认序列号字段,发送给主动连接方。

主动连接方向被动连接方发去一个ack,连接由此建立。

图中还演示了连接关闭的过程,终止一个连接需要四次握手。

任何一方在最后的发送数据段中设置FIN位来终止这个方向的连接。

当一端收到一个FIN,它必须通知应用层另一端已经终止了那个方向的数据传输,也就是说,不再会有数据从那个方向传来,但它仍然能够发送数据,收到FIN方回复一个ack。

由图我们还可以看到,SYN和FIN各占用了一个序号。

图中的端口A、B还让我们想起一个问题,如果不存在用户进程在监听端口B (即端口B没有打开)时,主机A将会收到什么呢?在UDP中,发送端将收到一份ICMP端口不可达报文,那么在TCP连接中呢?TCP使用复位,即在回应发送端的TCP 段中设置了RST位,携带ack主动发送端的确认序列号,自己的序列号为0.发送端收到这样的tcp段后,即知道连接被拒绝了。

那如果主机B根本就不存在呢?这时主机A将过一段时间再发送一个SYN到主机B请求连接,一般建立一个连接的最长时间限制为75秒。

如果一方已经关闭或导演终止而另一方却不知道,我们将这样的TCP连接称为半打开的。

比方说在主机A(客户端)上运行telnet程序,通过它和主机B(服务器)连接,由于突然停电,主机A没有向主机B的telnet端口发送FIN消息,结果主机B就以为与主机A的连接还在。

主机A重新启动后再次与主机B连接将会启动新的服务器程序,这样将会导致主机B上产生很多半打开的TCP连接。

如果是服务器主机B突然当掉了,而客户端A并不知道,它继续向主机B发送数据,假如主机B很快恢复了,然而先前的所有连接信息都丢失了,收到来自主机A的消息时,它回复以RST消息(相当于没有端口在监听)。

TCP支持同时打开或同时关系,不过同时打开将经历4次握手。

下面是TCP的状态变迁图(很难画,于是决定截图):状态图中比较重要的一点就是,主动关闭方在收到对方的对自己FIN的ACK以及对方的FIN后,进入一个状态叫TIME_WAIT,这种状态也称为2MSL等待状态。

每个TCP 实现必须选择一个报文段最大生存时间MSL(Maximum Segment Lifetime),它是任何报文段被丢弃前在网络内的最长时间。

对于一个具体实现所给定的MSL值,处理的原则是:当TCP执行一个主动关闭,并发回最后一个ACK,该连接必须在TIME_WAIT 状态停留的时间为2倍的MSL,以防这个ACK丢失的时候,可以重发一个ACK(对应另一端收不到ACK重发最后的FIN消息)。

这种2MSL等待的另一个结果是这个TCP 连接在2MSL等待期间,定义这个连接的插口(客户的IP地址和端口号,服务的IP地址和端口号)不能再被使用,这个连接只能在2MSL结束后才能被使用。

(书中说事实上很多TCP实现比这个要求还要更严格,在2MSL等待期间,插口中使用的本地端口在默认情况下不能再被使用。

)前面提到TCP的选项,下图是这些选项的格式:nop选项用于填充其他选项使其以4个字节对齐,如下面这个选项:<mss 512, nop, wscale 0, nop, nop, timestamp 146647 0>第一个nop填充窗口扩大选项,第二三个nop填充时间戳选项。

3. TCP的交互数据流(经受延时的确认、nagle算法)、成块数据流(慢启动)建立完连接后,两台主机开始进行数据的传输。

传输的数据可以分成两种,一种是交互式数据的传输,如通过telnet发送指令;一种是大量数据的传输,如通过ftp传输文件。

TCP显然需要同时能够处理这两种类型的数据,但使用的算法有所不同。

我们在telnet客户端键入一个字符时,字符被传输到服务器,服务器发来对该字节的确认;接着服务器发回这个字节,以回显到客户端的屏幕上,客户端又要回复一个确认。

也就是说,我们在一个远程终端上发送一个字符,竟然产生了4个报文段的交互。

经受时延的确认是这样一种机制:接收到数据的一端接收完数据后并不立刻回复一个确认,而是设定一个定时器,以便在定时器复位之前将要传输的数据携带这个确认一起发送过去;当然如果定时器复位时还没有数据要传输,就会单独发送一个ack。

这就是所谓的“经受时延的确认”。

这种方法对上面提到的过程产生影响是,服务器把回显的数据跟确认一起发送回客户端,4个报文段变成了3个报文段。

为了发送一个字节,我们产生了一个41字节长的分组,这在广域网上,可能会增加拥塞出现的可能。

Nagle算法要求一个TCP连接上最多只有一个未被确认的未完成的分组,在该分组的确认到达之前不能发送其他的小分组,相反,TCP收集这些少量的分组,并在确认到来时以一个分组的方式发出去。

但是这种算法对交互性很强的应用来说不是很合适,会有明显的时延。

对于成块的数据流,TCP更应该关注的是流量的控制。

发送端有发送缓冲区(即从应用程序到tcp),接收端有接收缓冲区,并不是接收到的数据马上就能被应用程序处理,如果发送端不断地发送数据,而接收端的缓冲区已经被占满,它必须通知发送端在缓冲区有空隙前,请不要再发送数据了。

在TCP中,缓冲区被形象地比喻成一个可以滑动的窗口,TCP通过一些算法来根据窗口的大小发送数据。

这是端到端的。

还有另外一种情况,就是,当发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出现一些问题,一些中间路由器必须缓冲分区,并有可能耗存储器的空间。

因此,连接建立时,双方应该慢慢了解去往对方的路况,然后以一个比较合适的速率大小发送块数据。

TCP支持一种被称为“慢启动”的算法,该算法通过观察到新分组进入网速的速率应该与另一端返回确认的速率相同而进行工作。

慢启动为发送方的TCP增加了另一个窗口:拥塞窗口,当与另一个网络建立TCP 连接时,拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小)。

每收到一个ack,拥塞窗口就增加一个报文段,发送方取拥塞窗口与通告窗口中的最小值作为发送上限。

拥塞窗口是发送方使用的流量控制,而通告窗口是接收方使用的流量控制。

4. TCP的四个定时器对每个连接,TCP管理4个不同的定时器:(1)重传定时器用于等待另一端的确认。

即当发送端发送出数据后,经过一段时间后假如仍然没有收到接收端的确认,那么就重传该数据块。

定时器设计的时间是动态的,并且随着重传的次数的增加而成指数增长。

“动态的”的意思是,重传定时器的值随着网络的状态(用RTT来数学化)而发现改变。

中间有一条计算式子我都没明白是怎么算出来的,这让人很泄气,看了几遍也没看明白,最终就只是知道了有这么一回事。

(2)坚持定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。

我们知道当接收方的窗口大小为0时,发送方将不能再向它发送数据,直到接收方用一个窗口大小为非0的消息来通告发送端。

可是,万一这个消息丢失了呢?接收方就一直这样等着发送方发来数据,而发送端就一直等着接收方发来窗口大于0的消息,两方就都僵在那里了。

为了避免这种情况的出现,便有了坚持定时器,发送方使用一个坚持定时器来周期性地向接收方查询,以便发现窗口是否已增大。

坚持定时器的定时时间也是指数退避的。

糊涂窗口综合症是指接收方一旦有非0的窗口大小就向发送方通告,从而引起发送端发送少量的数据这样的情况。

可以在任何一方采取措施避免出现这种状况:A. 在接收方,接收方不通告小窗口,一般是除非窗口可以增加一个报文段大小或可以增加接收方缓冲区空间的一半,不然通告窗口大小为0.B. 在发送方,发送方除非收到一个比较大的窗口(如一个报文段小大、是接收方通告窗口大小一半的报文段)或者是还没有未被确认的数据的情况下,才会发送数据。

相关文档
最新文档