版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
协议分析协议分析体系结构EthenetARPIPICMPOSI与TCP/IP体系结构应用层运输层网络层表示层会话层数据链路层物理层7654321OSI的体系结构应用层网络接口层网际层IP(各种应用层协议如TELNET,FTP,SMTP等)运输层(TCP
或
UDP)TCP/IP的体系结构无连接分组交付服务运输服务(可靠或不可靠)各种应用服务TCP/IP
的三个服务层次数据传输过程沙漏计时器形状的TCP/IP协议族HTTPSMTPDNSRTPTCPUDPIP网际层网络接口层运输层应用层………网络接口
1网络接口
2网络接口
3EverythingoverIP(IP可为各式各样的应用程序提供服务)IPoverEverything(IP可应用到各式各样的网络上)相邻两层间的关系协议交换原语交换原语服务用户提供服务服务提供者第n层第n+1层服务用户SAPSAP48位的MAC地址在局域网中,硬件地址又称为物理地址,或MAC地址。802标准:MAC地址为2/6字节MAC=OUI+EUI(Organizationally/ExtendedUniqueIdentifier)机构/扩展唯一标识符$1250/OUIeg:02-60-8C3ComIEEE的注册管理机构RA负责向厂家分配地址字段的前三个字节OUI(即高位24位)。OUI不能单独使用来标识一个公司地址字段中的后三个字节(即低位24位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。一个地址块可以生成224个不同的地址。这种48位地址称为MAC-48,它的通用名称是EUI-48。“MAC地址”实际上就是适配器地址或适配器标识符EUI-48。MAC=ManufactureID+NICIDMAC=ManufactureID+NICID24bit+24bit公司:Cisco00-00-0CNovell00-00-1B 00-00-D83Com00-20-AF00-60-8CIBM08-00-5A典型的Ethernet地址:00-60-8C-01-28-12I/G比特和G/L比特第1字节最低位I/G比特:Individual/GroupI/G=0(单个地址),I/G=1(组地址)IEEE只分配前3字节中的23位。第1字节最低第2位是G/L比特,Global/LocalG/L=1是全球管理,保证全球没有相同的地址G/L=0是本地管理,用户可任意分配采用2字节地址字段时全部是本地管理以太网几乎不使用G/L比特全球管理时,地址个数246=70368744177664=70万亿I/G比特和G/L比特AC最高位最先发送最低位001101010111101100010010000000000000000000000001最低位最先发送最高位OUIEUI高位在前低位在前AC-DE-48-00-00-80I/G比特I/G比特DE48000080ACDE48000080101011001101111001001000000000000000000010000000802.5802.6802.3802.4802.5802.6G/L比特G/L比特适配器检查MAC地址适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址.如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。“发往本站的帧”包括以下三种帧:单播(unicast)帧(一对一)多播(multicast)帧(一对多):01:00:5e:**:**:**广播(broadcast)帧(一对全体):全“1”混杂模式混杂模式(promiscuousmode)接收所有的帧窃听网管可以用混杂模式监视和分析以太网嗅探器(Sniffer)2.MAC帧的格式常用的以太网MAC帧格式有两种标准:DIXEthernetV2标准IEEE的802.3标准最常用的MAC帧是以太网V2的格式。MAC帧字节6624IP层物理层目的地址源地址长度/类型FCSMAC层1010101010101010101010101010101011前同步码帧开始定界符7字节1字节…8字节插入数据MAC子层IP层LLC子层802.2LLC帧当长度/类型字段表示长度时802.3MAC帧以太网V2MAC帧这种802.3+802.2帧已经较少使用目的地址源地址类型数据FCS6624字节46~150043~1497111DSAPSSAP111控制数据字节DSAPSSAP控制IP数据报IP数据报以太网帧格式以太网MAC帧物理层MAC层1010101010101010101010101010101011前同步码帧开始定界符7字节1字节…8字节插入IP层目的地址源地址类型数据FCS6624字节46~1500IP数据报MAC帧以太网的MAC
帧格式MAC帧物理层MAC层IP层目的地址源地址类型数据FCS6624字节46~1500IP数据报以太网V2的MAC帧格式目的地址字段6字节MAC帧物理层MAC层IP层目的地址源地址类型数据FCS6624字节46~1500IP数据报以太网V2的MAC帧格式源地址字段6字节MAC帧物理层MAC层IP层目的地址源地址类型数据FCS6624字节46~1500IP数据报以太网V2的MAC帧格式类型字段2字节类型字段用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。类型值:0x0800-IP0x0806-ARPMAC帧物理层MAC层IP层目的地址源地址类型数据FCS6624字节46~1500IP数据报以太网V2的MAC帧格式数据字段46~1500字节数据字段的正式名称是MAC
客户数据字段最小长度64字节
18字节的首部和尾部=数据字段的最小长度
当数据字段的长度小于46字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。MAC帧物理层MAC层IP层目的地址源地址类型数据FCS6624字节46~1500IP数据报以太网V2的MAC帧格式FCS字段4字节当传输媒体的误码率为1
10
8时,MAC子层可使未检测到的差错小于1
10
14。校验范围为:目的地址、源地址、类型、数据和PADMAC帧物理层MAC层IP层目的地址源地址类型数据FCS6624字节46~1500IP数据报以太网V2的MAC帧格式1010101010101010101010101010101011前同步码帧开始定界符7字节1字节…8字节插入在帧的前面插入的8字节中的第一个字段共7个字节,是前同步码,用来迅速实现MAC帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是MAC帧。为了达到比特同步,在传输媒体上实际传送的要比MAC帧还多8个字节4.2.3IP地址与硬件地址TCP报文IP数据报MAC帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上使用IP地址IP地址HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报从协议栈的层次上看数据的流动主机H2HA1HA5HA4HA3HA6主机H1路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报从虚拟的IP层上看IP数据报的流动主机H2HA1HA5HA4HA3HA6主机H1路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报在链路上看MAC帧的流动4.2.4ARP和RARP地址解析协议ARP(AddressResolutionProtocol)逆地址解析协议RARP
(ReverseAddressResolutionProtocol)IP地址物理地址ARP物理地址IP地址RARP4.2.4ARP和RARP不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个ARP高速缓存(ARPcache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。ARP响应AYXBZ主机B向A发送ARP响应分组主机A广播发送ARP请求分组ARP请求ARP请求ARP请求ARP请求00-00-C0-15-AD-1808-00-2B-00-EE-0A我是,硬件地址是00-00-C0-15-AD-18我想知道主机的硬件地址我是硬件地址是08-00-2B-00-EE-0AAYXBZ00-00-C0-15-AD-18ARPARP协议数据报格式ARP请求ARP应答ARP高速缓存的作用为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。当主机B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。ARP将已经得到的地址映射保存在高速缓存中,这样就使得该主机下次再和具有同样目的地址的主机通信时,可以直接从高速缓存中找到所需的硬件地址而不必再用广播方式发送ARP请求分组。映射地址生存时间ARP将保存再高速缓存中的每一个映射地址都设置生存时间(如10-20分钟),凡超过生存时间的项目就从高速缓存中删除掉。ARP仅解决局域网内IP地址和硬件地址映射ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。4.2.5IP数据报的格式一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。固定部分可变部分04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分数据部分首部传送IP数据报首部发送在前IP数据报的格式可变部分首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分数据部分首部传送IP数据报固定部分IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分数据部分首部传送IP数据报固定部分可变部分IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分版本——占4bit,指IP协议的版本目前的IP协议版本号为4(即IPv4)IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分首部长度——占4bit,可表示的最大数值是15个单位(一个单位为4字节)因此IP的首部长度的最大值是60字节。IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分区分服务——占8bit,旧标准中叫做服务类型,但一直没有使用过。1998年IETF把这个字段改名
为区分服务DS(DifferentiatedService)。一般
不使用。IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分总长度——占16bit,指首部和数据之和的长度,单位为
字节,因此数据报的最大长度为65535字节。总长度必须
不超过最大传送单元MTU。
分片时表示分片的总长度IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分标识(identification)占16bit,它是一个
计数器,用来产生数据报的标识。
分片时
各分片标识相同IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分标志(flag)占3bit,目前只有两个比特有意义。标志字段的最低位是MF(MoreFragment)。MF
1表示后面“还有分片”。MF
0表示最后一个分片。标志字段中间的一位是DF(Don'tFragment)。只有当DF
0时才允许分片。
IP数据报的格式首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分片偏移(13bit)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。IP数据报的格式IP数据报分片的基本方法如果数据报来自一个能够通过较大数据报的局域网,又要通过另一个只能通过较小的数据报的局域网,那么就必须对IP数据报进行分片。标识、标志和片偏移在IP数据报的报头中,与一个数据报的分片、组装相关的域有标识域、标志域与片偏移域。标识(identification)域为一个数据报的所有片分配一个标识ID值标志(flags)域表示接收结点是不是能对数据报分片片偏移(fragmentoffset)域表示该分片在整个数据报中的相对位置标志域0DFMF标志(flag)占3bit,目前只有两个比特有意义。标志字段的最低位是MF(MoreFragment)。MF
1后面“还有分片”。MF
0最后一个分片。标志字段中间的一位是DF(Don'tFragment)。DF=1不允许分片DF
0允许分片。分片方法的例子分片与标识、标志与片偏移的关系偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的数据报数据报片1首部数据部分共3800字节首部1首部2首部3字节0数据报片2数据报片314002800字节0IP数据报分片的举例首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分生存时间(8bit)记为TTL(TimeToLive),这是为了限制数据报在网络中的生存时间,其单位最初是秒,但为了方便,现在都用“跳数”作为TTL的单位。数据报每经过一个路由器,其TTL值就减1。首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分协议(8bit)字段指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程运输层网络层首部TCPUDPICMPIGMPOSPF数据部分IP数据报协议字段指出应将数据部分交给哪一个进程首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分首部检验和(16bit)字段只检验数据报的首部不包括数据部分。这里不采用CRC检验码而采用简单的计算方法。发送端接收端16bit字116bit字2置为全0检验和16bit字n16bit反码算术运算求和……取反码数据报首部IP数据报16bit检验和16bit字116bit字216bit检验和16bit字n16bit反码算术运算求和16bit结果……取反码数据部分若结果为0,则保留;否则,丢弃该数据报数据部分不参与检验和的计算检验和计算检验和计算45000028526e0000710652f5
3da4b086d22be416计算:
45000028526e00007106
00003da4b086d22b+e416------3ad07ad07+3------~ad0a------52f5校验:45000028526e00007106
52f53da4b086d22b+e416------3fffcfffc+3------~ffff------0检验和计算45000028526e0000710652f5
3da4b086d22be416计算:
45000028526e0000710600003da4b086+d22be416-----------2184494C4
94c41844+2-----------~ad0a-----------
52f5校验:
45000028526e0000710652f53da4b086+d22be416-----------21844e7b9e7b918442-----------~ffff-----------0首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分源地址和目的地址都各占4字节IP数据报首部的可变部分IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。4.4网际控制报文协议ICMP为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP(InternetControlMessageProtocol)。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP报文的格式首部ICMP报文0数据部分检验和类型代码(这4个字节取决于ICMP报文的类型)81631IP数据报前4个字节都是一样的ICMP的数据部分(长度取决于类型)常用ICMP报文ICMP报文种类类型的值ICMP报文的类型差错报告报文3终点不可达4源站抑制5改变路由(重定向)11时间超过12参数问题询问报文8/0回送(Echo)请求或回答(ping)13/14时间戳(Timestamp)请求或回答ICMP差错报告报文的数据字段的内容首部IP数据报ICMP的前8字节装入ICMP报文的IP数据报IP数据报首部ICMP差错报告报文8字节收到的IP数据报IP数据报首部8字节ICMP差错报告报文IP数据报的数据字段不应发送ICMP差错报告报文的几种情况对ICMP差错报告报文不再发送ICMP差错报告报文。对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。对具有多播地址的数据报都不发送ICMP差错报告报文。对具有特殊地址(如或)的数据报不发送ICMP差错报告报文。ICMP询问报文有两种回送请求和回答时间戳请求和回答PING(PacketInterNetGroper)PING用来测试两个主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP。PING的应用举例PING的应用举例C:\>pingPinging[6]with32bytesofdata:Replyfrom6:bytes=32time=59msTTL=244Replyfrom6:bytes=32time=63msTTL=244Replyfrom6:bytes=32time=60msTTL=244Replyfrom6:bytes=32time=60msTTL=244Pingstatisticsfor6:Packets:Sent=4,Received=4,Lost=0(0%loss),Approximateroundtriptimesinmilli-seconds:Minimum=59ms,Maximum=63ms,Average=60msTraceroute的应用举例使用运输层协议的应用层协议应用应用层协议运输层协议名字转换DNSUDP文件传送TFPUDP路由选择协议RIPUDPIP地址配置BOOTP,DHCPUDP网络管理SNMPUDP远程文件服务器NFSUDP多播IGMPUDP电子邮件SMTPTCP远程终端接入TELNETTCP万维网HTTPTCP文件传送FTPTCP三类端口熟知端口,数值一般为0~1023。登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA登记,以防止重复。客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。应用程序FTPTELNETSMTPDNSTFTPHTTPPOP3SNMP熟知端口2123255369801101615.2.2UDP的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报计算UDP检验和的例子1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101101→求和得出结果0110100100010010→检验和04112字节伪首部8字节UDP首部7字节数据填充按二进制反码运算求和将得出的结果求反码全0171510871315全0数据数据数据数据数据数据数据全0请注意:进行反码运算求和时,最高位有进位
2,这个
2
应当加到最低位。768H
TCP面向流的概念
发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109H加上TCP首部构成TCP报文段TCPTCP字节流字节流TCP连接TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前5.5TCP报文段的首部格式源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充端口序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充序号字段确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充确认号数据偏移(即首部长度)——占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位字(以4字节为计算单位)。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充数据偏移保留字段——占6位,保留为今后使用,但目前应置为0。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充保留紧急URG——当URG
1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充URG确认ACK——只有当ACK
1时确认号字段才有效。当ACK
0时,确认号无效。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充ACK推送PSH(PuSH)——接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充PSH复位RST(ReSeT)——当RST
1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充RST同步SYN——同步SYN=1表示这是一个连接请求或连接接受报文。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充SYN终止FIN(FINis)——用来释放一个连接。FIN
1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充FIN窗口字段TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充窗口字段——占2字节,用来让对方设置发送窗口的依据,单位为字节。检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充检验和紧急指针字段——占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充紧急指针选项字段——长度可变。TCP最初只规定了一种选项,即最大报文段长度MSS。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充选项字段MSS(MaximumSegmentSize)是TCP报文段中的数据字段的最大长度数据字段加上TCP首部才等于整个的TCP报文段MSSMSS(MaximumSegmentSize)是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部,才等于整个的TCP报文段。MSS应尽可能大,只要在IP层不必分片就行。在建立链接时,双方都将自己能够支持的MSS写入这一字段,在以后的数据传送阶段,MSS取双方提出的较小的值。如果通信双方未填写MSS,默认值为536。因此,因特网上所有的主机都应能接受536+20的报文段其他选项窗口扩大选项——占3字节,其中有一个字节表示移位值S。新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小。时间戳选项——占10字节,其中最主要的字段时间戳值字段(4字节)和时间戳回送回答字段(4字节)。选择确认选项——在后面的5.6.3节介绍。5.6.3选择确认SACK选择确认SACK(SelectiveACK)接收方收到了和前面的字节流不连续的两个字节块。如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。110001501300035014500确认号=1001L1=1501L2=3501R1=3001R1=4501接收到的字节流序号不连续……连续字节流………第一个字节块第二个字节块和前后字节不连续的每一个字节块都有两个边界:左边界和右边界。图中用四个指针标记这些边界。第一个字节块的左边界L1=1501,但右边界R1=3001。左边界指出字节块的第一个字节的序号,但右边界减1才是字节块中的最后一个序号。第二个字节块的左边界L2=3501,而右边界R2=4501。“允许SACK”的选项RFC2018的规定,如果要使用选择确认,那么在建立TCP连接时,就要在TCP首部的选项中加上“允许SACK”的选项,而双方必须都事先商定好。如果使用选择确认,那么原来首部中的“确认号字段”的用法仍然不变。只是以后在TCP报文段的首部中都增加了SACK选项,以便报告收到的不连续的字节块的边界。由于首部选项的长度最多只有40字节,而指明一个边界就要用掉4字节,因此在选项中最多只能指明4个字节块的边界信息。填充字段——这是为了使整个首部长度是4字节的整数倍。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充填充字段不允许发送已发送并收到确认A的发送窗口位置不变允许发送但尚未发送262728293031323334353637383940414243444546474849505152535455已发送但未收到确认56P1P2P3不允许接收已发送确认并交付主机B的接收窗口允许接收26272829303132333435363738394041424344454647484950515253545556未按序收到可用窗口P3–P1=A的发送窗口(又称为通知窗口)P2–P1=已发送但尚未收到确认的字节数P3–P2=允许发送但尚未发送(又称为可用窗口/有效窗口)A发送了11个字节的数据允许发送但尚未发送A的发送窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送并收到确认不允许发送已发送但未收到确认56P1P2P3允许接收B的接收窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送确认并交付主机不允许接收56未按序收到先存下,等待缺少的数据的到达A收到新的确认号,发送窗口向前滑动不允许发送已发送并收到确认A的发送窗口已满,有效窗口为零262728293031323334353637383940414243444546474849505152535455已发送但未收到确认56P1P2P3A的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送。可用窗口为05.9.1TCP的连接建立SYN=1,seq=xCLOSED主动打开被动打开AB客户服务器用三次握手建立连接A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x。CLOSEDSYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x
1
B的TCP收到连接请求报文段后,如同意,则发回确认。
B在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x
1,自己选择的序号seq=y。5.9.1TCP的连接建立用三次握手建立连接CLOSEDCLOSEDSYN=1,seq=xACK=1,seq=x+1,ack=y
1CLOSED主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x
1
A收到此报文段后向B给出确认,其ACK=1,确认号ack=y
1。通知上层,连接已建立。三次握手CLOSEDCLOSED
B的TCP收到主机A的确认后,也通知其上层应用进程:TCP连接已经建立。SYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED用三次握手建立TCP连接的各状态SYN=1,seq=xACK=1,seq=x+1,ack=y
1数据传送主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x
1CLOSEDCLOSED三次握手原因防止已失效的连接请求报文段又传送到主机B,因而产生错误主机A发出连接请求丢失,重传,建立连接。若主机A发出的第一个连接请求报告滞留的时间太长,以致延误到在这次连接释放后才传送到主机B,已失效。但主机B误认为是主机A又发出连接请求,向A发出确认,同意建立连接。A不理睬,B一直等待A发送数据,造成资源浪费。FIN=1,seq=uCLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDABCLOSED数据传输结束后,通信的双方都可释放连接。现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP
连接。
A把连接释放报文段首部的FIN=1,其序号
seq=u,等待B的确认。5.9.2TCP的连接释放FIN=1,seq=uACK=1,seq=v,ack=u
1主动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB
B发出确认,确认号ack=u
1,而这个报文段自己的序号seq=v。
TCP服务器进程通知高层应用进程。从A到B这个方向的连接就释放了,TCP连接处于半关闭状态。B若发送数据,A仍要接收。5.9.2TCP的连接释放FIN=1,seq=uACK=1,seq=v,ack=u
1FIN=1,ACK=1,seq=w,ack=u
1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB数据传送若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。5.9.2TCP的连接释放FIN=1,seq=uACK=1,seq=v,ack=u
1FIN=1,ACK=1,seq=w,ack=u
1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB数据传送
A收到连接释放报文段后,必须发出确认。ACK=1,seq=u+1,ack=w
15.9.2TCP的连接释放FIN=1,seq=uACK=1,seq=v,ack=u
1FIN=1,ACK=1,seq=w,ack=u
1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB数据传送在确认报文段中ACK=1,确认号ack
w
1,自己的序号seq=u+1。ACK=1,seq=u+1,ack=w
15.9.2TCP的连接释放ACK=1,seq=u+1,ack=w
1FIN=1,seq=uACK=1,seq=v,ack=u
1FIN=1,ACK=1,seq=w,ack=u
1FIN-WAIT-1CLOSE-WAITFIN-WAIT-2LAST-ACK等待2MSLTIME-WAIT
主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB数据传送连接经过时间2MSL后才真正释放CLOSEDCLOSED6.1.1域名系统概述域名系统DNS(DomainNameSystem)许多应用层软件经常直接使用域名系统DNS,但计算机的用户只是间接而不是直接使用域名系统。因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS。名字到IP地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。因特网的域名空间根四级域名mail…www…bjeducom…cctvibmhp二级域名pkutsinghua…三级域名mailwww…comnetorgedugovaerocnuk…顶级域名……本地域名服务器采用递归查询(比较少用)
顶级域名服务器权限域名服务本地域名服务器
根域名服务器
递归查询递归查询
的
IP
地址
需要查找的IP地址递归查询
本地域名服务器采用迭代查询顶级域名服务器权限域名服务本地域名服务器根域名服务器
迭代查询
的
IP
地址
需要查找的IP地址资源记录ResourceRecords每个域都有相关的资源记录(ResoureceRecord)域名解析时从dns取回是与该域名有关的资源记录一条资源记录共有5项Domain_nameTime_to_liveClassTypeValue域名指出这条记录指向的域生存时间指出记录的稳定性(秒)值越大越稳定Class对于因特网信息,它总是IN类型字段指出记录的类型ResourceRecordsTheprincipalDNSresourcerecordstypes.ResourceRecords(2)DNS报文格式这个报文由12字节长的首部和4个长度可变的字段组成。标识字段由客户程序设置并由服务器返回结果。客户程序通过它来确定响应与查询是否匹配。flagsQR:0-查询报文,1-响应报文。opcode:0-标准查询,1-反向查询,2-服务器状态请求AA:(AuthoritativeAnswer)1-权威回答,0-非权威回答TC:(TrunCated)1-可截断。使用UDP时,它表示当应答的总长度超过512字节时,只返回前512个字节。RD:(RecursionDesired)1-期望递归。告诉名字服务器必须查询出结果。0-迭代查询。RA:表示“可用递归(RecursionAvailable)”。1-服务器支持递归查询,0-不支持。rcode:返回码字段。通常0(没有差错)和3(名字差错)查询名资源记录6.2.1FTP概述文件传送协议FTP(FileTransferProtocol)是因特网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。RFC959很早就成为了因特网的正式标准。FTP使用的两个TCP连接控制进程FTP客户端FTP服务器端因特网TCP控制连接TCP数据连接用户界面控制进程数据传送进程数据传送进程因特网FTP访问FTP协议常用命令ABOR放弃先前的FTP命令和数据传输LISTfilelist列表显示文件或目录PASSpassword服务器上的口令PORTn1,n2,n3,n4,n5,n6客户端IP地址(n1.n2.n3.n4)和端口(n5×256+n6)QUIT从服务器注销RETRfilename检索(取)一个文件STORfilename存储(放)一个文件SYST服务器返回系统类型TYPEtype说明文件类型:A表示ASCII码,I表示图像USERusername服务器上用户名FTP应答应答都是ASCII码形式的3位数字,并跟有报文选项。其原因是软件系统需要根据数字代码来决定如何应答,而选项串是面向人工处理的。由于客户通常都要输出数字应答和报文串,一个可交互的用户可以通过阅读报文串(而不必记忆所有数字回答代码的含义)来确定应答的含义。应答3位码中每一位数字都有不同的含义。第3位数字给出差错报文的附加含义。例如,这里是一些典型的应答,都带有一个可能的报文串。•125数据连接已经打开;传输开始。•200就绪命令。•214帮助报文(面向用户)。•331用户名就绪,要求输入口令。•425不能打开数据连接。•500语法错误(未认可的命令)。•501语法错误(无效参数)。通常每个FTP命令都产生一行回答。例如,QUIT命令可以产生如下应答:221Goodbye.FTP应答应答说明1yz肯定预备应答。它仅仅是在发送另一个命令前期待另一个应答时启动2yz肯定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人创先争优活动总结
- 学习两学一做心得体会
- 2026护理核心制度培训完整版
- 2026年沥青防水卷材行业分析报告及未来发展趋势报告
- 2026年尼龙6切片行业分析报告及未来发展趋势报告
- 2026年互联网+体育行业分析报告及未来发展趋势报告
- 2026年立体卷铁心变压器行业分析报告及未来发展趋势报告
- 胆囊结石伴胆管梗阻患者科普指南
- 骨科加速康复手术切口操作与并发症防治共识总结2026
- 2026年卫星电话行业分析报告及未来发展趋势报告
- 2026中国广藿香己醇行业应用动态与投资盈利预测报告
- 2026四川宜宾港信资产管理有限公司第一批员工招聘10人笔试历年常考点试题专练附带答案详解
- 2026年云南省文山州初中学业水平质量监测物理试题卷(含答案)
- 河北省石家庄市2026届高三二模数学试卷(含答案)
- 2026年广东省广州市高考语文二模试卷
- 2025年测绘行业面试模拟题及答案解析
- 2026年服装制版师中级理论知识考核试卷及完整答案详解【考点梳理】
- T∕CPCPA 0017-2026 托育机构婴幼儿回应性照护服务规范
- 外科住院部工作制度
- 山东省2026届普通高中学业水平4月调研生物试卷(含答案)
- 青贮加工基地建设方案
评论
0/150
提交评论