IP分片

IP分片属于网络层特性
所包含的字段
在这里插入图片描述

identification: 标识,主机每发一个报文,加 1
Flages: 标志位
在这里插入图片描述
Bit 0: 保留位,必须为0
Bit 1:DF,分片为0,不能分片为1
Bit 2: MF,表示是否该报文为最后一片,0表示最后一片,1表示后面还有
Fragment Offset : 片偏移

举例示意
6000字节的数据进行分片
在这里插入图片描述
由于每个数据前都有IP头部20字节,第一片分片1480 剩余4520
在这里插入图片描述
id 为 x DF(是否分片)=0 MF(是否还有分片):1 F0:片偏移(之前分片的字节):0
第二片分片1480 剩余3040
在这里插入图片描述
id 为 x DF(是否分片)=0 MF(是否还有分片):1 F0:片偏移(之前分片的字节):1480

第三片分片1480 剩余1560
在这里插入图片描述
id 为 x DF(是否分片)=0 MF(是否还有分片):1 F0:片偏移(之前分片的字节):2960
第四片分片1480 剩余80
在这里插入图片描述
id 为 x DF(是否分片)=0 MF(是否还有分片):1 F0:片偏移(之前分片的字节):4440
第五片分片80
在这里插入图片描述
id 为 x DF(是否分片)=0 MF(是否还有分片):0 F0:片偏移(之前分片的字节):5920
可以通过抓包获取以上数据
运行环境
在这里插入图片描述
配置
设置两台路由器的IP
配置 6000字节

ping -s 6000 10.1.1.2

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
我们知道,TCP/IP网络数据全部是通过封装在IP数据包中在Internet网上传送的,也就是封装建立起一个包含IP头和数据IP数据报。一般来说,网络软件总是以多个32位字产生IP头,即使必须用附加的0填充IP头。IP头包含了传输IP数据包中封装数据的所有必要信息。IP头的数据结构和描述如下: 成员 长度(Bit) 描述 Version 4 IP头的版本号,目前是IPv4,最新是IPv6 Header Length 4 IP头的长度,若没有特殊选择,IP头总是20字节长 Type of Service 8 服务类型,定义了数据传输的优先级、延迟、吞吐量和可靠性等特性 Total Packet Length 16 IP包的长度,若没有特殊选项,一般为20字节长 Identification 16 IP包标识,主机使用它唯一确定每个发送的数据报 Flag 3 IP数据分割标志 Fragment Offset 13 IP数据分割偏移 Time to Live 8 数据报在网络上的存活时间,每通过一个路由器,该数值减一 Protocol 8 TCP/IP协议类型,比如:ICMP为1,IGMP为2,TCP为6,UDP为17等 Header Checksum 16 头部检验和 Source IP Address 32 源IP地址 Destination IP Address 32 目的IP地址 Other ? 其他选项 Data ? 数据    实现自己定义的IP头是一件非常有意义的事情,比如,通过改变IP头里的TOS的优先级和TTL,你可以使自己的数据包有更强的传输能力和寿命,通过修改IP头里的源IP地址就可以隐藏自己机器的IP地址等等。象著名攻击程序“泪滴TearDrop”就是通过故意制造系统不能处理的分片IP包而实现的,还有SYN Flooder和UDP Flooder就是通过产生随机源IP实现欺骗的。 三、实现原理    一般来说,自定义IP头是通过使用socket的库函数setsockopt()的选项IP_HDRINCL来实现的,尽管这在unix和linux平台上很容易实现,但遗憾的是在Windows平台的Winsock1.1和Winsock2.0函数库里setsockopt()不支持IP_HDRINCL选项,所以在Windows 9x/NT里是无法通过Winsock函数库来实现IP头自定义的,当然可以通过编写虚拟设备驱动程序来实现,不过比较复杂,但Windows 2000的出现打破了这种局面,Windows2000的Winsock2.2函数库里全面支持setsockopt()的选项IP_HDRINCL,使得我们轻松就可以实现自定义的IP头。实现方法如下: SOCKET s; BOOL bopt; s=WSASocket(AF_INET, SOCK_RAW, IPPROTO_UDP, NULL, 0, WSA_FLAG_OVERLAPPED); ret = setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)bopt, sizeof(bopt); 四、实例   为帮助大家尽快地学会构造自己的IP数据,特给出一个完整的实例,例子的功能是:只要给出对方的IP地址,就可以发送给对方的OICQ一个“hello!”消息,并且由于修改了发送数据包的IP头,完全实现了发送方IP地址的隐藏,也就是说稍加修改你就可以制作出一个能够完完全全的匿名OICQ发送器,当然,若是故意捣乱的话,后果自负。源代码如下: /***********************************************************************/ /* OicqSend.c                                            */ /* 本程序用Visual C++ 6.0编译在Windows 2000 Advanced Server 上调试通过 */ /* Created by [email protected] 2000.8.28                         */ /* 声明:本程序经修改后可能会产生攻击性擅自修改成攻击程序者后果自负  */ /***********************************************************************/ #pragma pack(1) #define WIN32_LEAN_AND_MEAN #include #include #include #include #include #define OICQ_MAX_PACKET 1024 #define OICQ_MAX_MSG 512 #define OICQ_MSG_LEN 45 #define SRC_IP "127.0.0.1" #define SRC_PORT 5277 #define DST_PORT 4000 typedef struct ip_hdr { unsigned char ip_verlen; unsigned char ip_tos; unsigned short ip_totallength; unsigned short ip_id; unsigned short ip_offset; unsigned char ip_ttl; unsigned char ip_protocol; unsigned short ip_checksum; unsigned int ip_srcaddr; unsigned int ip_destaddr; } IP_HDR; typedef struct udp_hdr { unsigned short src_portno; unsigned short dst_portno; unsigned short udp_length; unsigned short udp_checksum; } UDP_HDR; char strMessage[OICQ_MSG_LEN] = { 0x02,0x01,0x07,0x00,0x78,0x00,0x00,0x31,0x30,0x30,0x30,0x31,0x1f,0x30,0x1f, 0x30,0x30,0x1f,0x32,0x30,0x30,0x30,0x2d,0x30,0x31,0x2d,0x30,0x31,0x1f,0x30, 0x30,0x3a,0x30,0x30,0x3a,0x30,0x30,0x1f,0x68,0x65,0x6c,0x6c,0x6f,0x21,0x03 }; USHORT checksum(USHORT *buffer, int size) { unsigned long cksum=0; while (size > 1) { cksum += *buffer++; size -= sizeof(USHORT); } if (size) { cksum += *(UCHAR*)buffer; } cksum = (cksum >> 16) + (cksum & 0xffff); cksum += (cksum >>16); return (USHORT)(~cksum); } int main(int argc, char **argv) { WSADATA wsd; SOCKET s; BOOL bOpt; struct sockaddr_in remote; IP_HDR ipHdr; UDP_HDR udpHdr; int ret; DWORD i; unsigned short iTotalSize, iUdpSize, iUdpChecksumSize, iIPVersion, iIPSize, cksum = 0; char buf[OICQ_MAX_PACKET], *ptr = NULL; printf("Spoof OICQ Msg Sender - by [email protected]\n\n"); if(argc!=2) { printf("usage: OICQSEND Destination_IP_Address"); ExitProcess(1); } srand((unsigned)time(NULL)); strMessage[5]=rand(); if (WSAStartup(MAKEWORD(2,2), &wsd;) != 0) { printf("WSAStartup() failed: %d\n", GetLastError()); return -1; } s = WSASocket(AF_INET, SOCK_RAW, IPPROTO_UDP, NULL, 0,0); if (s == INVALID_SOCKET) { printf("WSASocket() failed: %d\n", WSAGetLastError()); return -1; } bOpt = TRUE; ret = setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)&bOpt;, sizeof(bOpt)); if (ret == SOCKET_ERROR) { printf("setsockopt(IP_HDRINCL) failed: %d\n", WSAGetLastError()); return -1; } iTotalSize = sizeof(ipHdr) + sizeof(udpHdr) + OICQ_MSG_LEN; iIPVersion = 4; iIPSize = sizeof(ipHdr) / sizeof(unsigned long); ipHdr.ip_verlen = (iIPVersion << 4) | iIPSize; ipHdr.ip_tos = 0; ipHdr.ip_totallength = htons(iTotalSize); ipHdr.ip_id = 0; ipHdr.ip_offset = 0; ipHdr.ip_ttl = 128; ipHdr.ip_protocol = 0x11; ipHdr.ip_checksum = 0 ; ipHdr.ip_srcaddr = inet_addr(SRC_IP); ipHdr.ip_destaddr = inet_addr(argv[1]); iUdpSize = sizeof(udpHdr) + OICQ_MSG_LEN; udpHdr.src_portno = htons(SRC_PORT) ; udpHdr.dst_portno = htons(DST_PORT) ; udpHdr.udp_length = htons(iUdpSize) ; udpHdr.udp_checksum = 0 ; iUdpChecksumSize = 0; ptr = buf; ZeroMemory(buf, OICQ_MAX_PACKET); memcpy(ptr, &ipHdr;.ip_srcaddr, sizeof(ipHdr.ip_srcaddr)); ptr += sizeof(ipHdr.ip_srcaddr); iUdpChecksumSize += sizeof(ipHdr.ip_srcaddr); memcpy(ptr, &ipHdr;.ip_destaddr, sizeof(ipHdr.ip_destaddr)); ptr += sizeof(ipHdr.ip_destaddr); iUdpChecksumSize += sizeof(ipHdr.ip_destaddr); ptr++; iUdpChecksumSize += 1; memcpy(ptr, &ipHdr;.ip_protocol, sizeof(ipHdr.ip_protocol)); ptr += sizeof(ipHdr.ip_protocol); iUdpChecksumSize += sizeof(ipHdr.ip_protocol); memcpy(ptr, &udpHdr;.udp_length, sizeof(udpHdr.udp_length)); ptr += sizeof(udpHdr.udp_length); iUdpChecksumSize += sizeof(udpHdr.udp_length); memcpy(ptr, &udpHdr;, sizeof(udpHdr)); ptr += sizeof(udpHdr); iUdpChecksumSize += sizeof(udpHdr); for(i = 0; i *ptr = strMessage[i]; iUdpChecksumSize += OICQ_MSG_LEN; cksum = checksum((USHORT *)buf, iUdpChecksumSize); udpHdr.udp_checksum = cksum; ZeroMemory(buf, OICQ_MAX_PACKET); ptr = buf; memcpy(ptr, &ipHdr;, sizeof(ipHdr)); ptr += sizeof(ipHdr); memcpy(ptr, &udpHdr;, sizeof(udpHdr)); ptr += sizeof(udpHdr); memcpy(ptr, strMessage, OICQ_MSG_LEN); remote.sin_family = AF_INET; remote.sin_port = htons(DST_PORT); remote.sin_addr.s_addr = inet_addr(argv[1]); ret = sendto(s, buf, iTotalSize, 0, (SOCKADDR *)&remote;, sizeof(remote)); if (ret == SOCKET_ERROR) printf("sendto() failed: %d\n", WSAGetLastError()); else printf("Send O.K.!"); closesocket(s) ; WSACleanup() ; return 0; }
常见问题目录 本光盘的使用方法:点击感兴趣的问题,就可以链接到该问题的答案。所有文件都是用WORD打开的。在点击所要看的问题时,请同时按住Control键(Ctrl)。 第1章 概述 问题1-1:“主机”和“计算机”一样不一样? 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 问题1-3:因特网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的? 问题1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢?或者说,是否我们可以在各层任意使用面向连接服务或无连接服务呢? 问题1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-6:在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-7:TCP/IP的体系结构到底是四层还是五层? 问题1-8:我们常说“分组交换”。但又常说“路由器转发IP数据报”或“路由器转发帧”。究竟“分组”一词应当用在什么场合? 问题1-9:到商店购买可一个希捷公司生产的80 G的硬盘。安装到电脑上以后用WINDOWS的资源管理器发现在该磁盘的“属性”中只有74.5 G。是不是商店出了差错? 问题1-10:有这样的说法:习惯上,人们都将网络的“带宽”作为网络所能传送的“最高数据率”的同义语。这样的说法有何根据? 问题1-11:有时可听到人们将“带宽为10 Mb/s的以太网”说成是“速率(或速度)为10 Mb/s的以太网”或“10兆速率(或速度)的以太网”。试问这样的说法正确否? 问题1-12:有人说,宽带信道相当于高速公路车道数目增多了,可以同时并行地跑更多数量的汽车。虽然汽车的时速并没有提高(这相当于比特在信道上的传播速率没有提高),但整个高速公路的运输能力却增多了,相当于能够传送更多数量的比特。这种比喻合适否? 问题1-13:如果用时延带宽积管道来比作传输链路,那么是否宽带链路对应的时延带宽积管道就比较宽呢? 问题1-14:网络的吞吐量与网络的时延有何关系? 问题1-15:什么是“无缝的”、“透明的”和“虚拟的”? 问题1-16:在教材的1.7.2节提到协议有三个要素,即语法、语义和同步。语义是否已经包括了同步的意思? 问题1-17:为什么协议不能设计成100%可靠的? 问题1-18:什么是因特网的摩尔定律? 第2章 物理层 问题2-1:“规程”、“协议”和 “规约”都有何区别? 问题2-2:在许多文献中经常见到人们将“模拟”与“仿真”作为同义语。那么,“模拟信道”能否说成是“仿真信道”? 问题2-3:为什么电话信道的标准带宽是3.1 kHz? 问题2-4:奈氏准则和香农公式的主要区别是什么?这两个公式对数据通信的意义是什么? 问题2-5:传输媒体是物理层吗?传输媒体和物理层的主要区别是什么? 问题2-6:同步(synchronous)和异步(asynchronous)的区别是什么? 问题2-7:同步通信和异步通信的区别是什么? 问题2-8:位同步(比特同步)和帧同步的区别是什么? 第3章 数据链路层 问题3-1:旧版的《计算机网络》认为数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据数据链路层可以把一条有可能出差错的实际链路,转变成为让网络层向下看起来好像是一条不出差错的链路。 但最近新版的《计算机网络》(第4版和第5版)中对数据链路层的提法就改变了。数据链路层的传输不能让网络层向下看起来好像是一条不出差错的链路。 到底哪一种说法是正确的? 问题3-2:当数据链路层使用PPP协议或CSMA/CD协议时,既然不保证可靠传输,那么为什么对所传输的帧进行差错检验呢? 问题3-3:为什么旧的版本教材在数据链路层一章中讲授可靠传输,但现在新的版本教材则取消了可靠传输? 问题3-4:通过普通的电话用户线拨号上网时(使用调制解调器),试问一对用户线可容许多少个用户同时上网? 问题3-5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题? 问题3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要的? 问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用? 问题3-8:在以太网中,不同的传输媒体会产生不同的传播时延吗? 问题3-9:在以太网中发生了碰撞是否说明这时出现了某种故障? 问题3-10:从什么地方可以查阅到以太网帧格式中的“类型”字段是怎样分配的? 问题3-11:是什么原因使以太网有一个最小帧长和最大帧长? 问题3-12:在双绞线以太网中,其连接导线只需要两对线:一对线用于发送,另一对线用于接收。但现在的标准是使用RJ-45连接器。这种连接器有8根针脚,一共可连接4对线。这是否有些浪费?是否可以不使用RJ-45而使用RJ-11? 问题3-13:RJ-45连接器对8根针脚的编号有什么规定? 问题3-14:剥开5类线的外塑料保护套管就可以看见不同颜色的4对双绞线。哪一根线应当连接到哪一个针脚呢? 问题3-15:将5类线电缆与RJ-45插头连接起来的具体操作步骤是怎样的? 问题3-16:不用集线器或以太网交换机,能否将两台计算机用带有RJ-45插头的5类线电缆直接连接起来? 问题3-17:使用屏蔽双绞线电缆STP安装以太网是否可获得更好的效果? 问题3-18:如果将已有的10 Mb/s以太网升级到100 Mb/s,试问原来使用的连接导线是否还能继续使用? 问题3-19:使用5类线的10BASE-T以太网的最大传输距离是100 m。但听到有人说,他使用10BASE-T以太网传送数据的距离达到180 m。这可能吗? 问题3-20:粗缆以太网有一个单独的收发器。细缆以太网和双绞线以太网有没有收发器?如果有,都在什么地方? 问题3-21:什么叫做“星形总线(star-shaped bus)”或“盒中总线(bus-in-a-box)”? 问题3-22:以太网的覆盖范围受限的一个原因是:如果站点之间的距离太大,那么由于信号传输时会衰减得很多因而无法对信号进行可靠的接收。试问:如果我们设法提高发送信号的功率,那么是否就可以提高以太网的通信距离? 问题3-23:一个大学能否就使用一个很大的局域网而不使用许多相互连接的较小的局域网? 问题3-24:一个10 Mb/s以太网若工作在全双工状态,那么其数据率是发送和接收各为5 Mb/s还是发送和接收各为10 Mb/s? 问题3-25:一个单个的以太网上所使用的网桥数目有没有上限? 问题3-26:当我们在PC机插上以太网的适配器(网卡)后,是否还必须编制以太网所需的MAC协议的程序? 问题3-27:使用网络分析软件可以分析出所捕获到的每一个帧的首部中各个字段的值。但是有时却无法找出LLC帧首部的各字段的值。这是什么原因? 问题3-28:整个的IEEE 802委员会现在一共有多少个工作组? 问题3-29:在一些文献和教材中,可以见到关于以太网的“前同步码”(preamble)有两种不同的说法。一种说法是:前同步码共8个字节。另一种说法是:前同步码共7个字节,而在前同步码后面还有一个字节的“帧开始定界符”SFD (Start-of-Frame Delimiter)。那么哪一种说法是正确的呢? 问题3-30:802.3标准共包含有多少种协议? 问题3-31:在802.3标准中有没有对人为干扰信号(jamming signal)制定出标准呢? 问题3-32:在以太网中,有没有可能在发送了512 bit(64 B)以后才发生碰撞? 问题3-33:在有的文献中会见到runt和jabber这两个名词,它们是什么意思? 问题3-34:当局域网刚刚问世时,总线形的以太网被认为可靠性比星形结构的网络好。但现在以太网又回到了星形结构,使用集线器作为交换结点。那么以前的看法是否有些不正确? 第4章 网络层 问题4-1:存在多种异构网络对不同网络之间的通信会造成一些麻烦。但为什么世界上还存在多种异构网络? 问题4-2:“IP网关”和“IP路由器”是否为同义语? 问题4-3:“互连网”和“互联网”有没有区别? 问题4-4:在文献中有时会见到对等连网(peer-to-peer networking),这是什么意思? 问题4-5:在一个互联网中,能否使用一个很大的交换机(switch)来代替互联网中很多的路由器? 问题4-6:为什么IP地址又称为“虚拟地址”? 问题4-7:有的文献上使用“虚拟分组”(virtual packet)这一名词。虚拟分组是什么意思? 问题4-8:如下图所示。五个网络用四个路由器(每一个路由器有两个端口)互连起来。能否改变这种连接方法,使用一个具有五个端口的路由器将这五个网络互连起来? 问题4-9:当运行PING 127.0.0.1时,这个IP数据报将发送给谁? 问题4-10:网络前缀是指网络号字段(net-id)中前面的几个类别位还是指整个的网络号字段? 问题4-11:有的书(如[COME06])将IP地址分为前缀和后缀两大部分,它们和网络号字段及主机号字段有什么关系? 问题4-12:IP地址中的前缀和后缀最大的不同是什么? 问题4-13:IP数据报中的数据部分的长度是可变的(即IP数据报不是定长的)。这样做有什么好处? 问题4-14:IP地址中的各种类别的地址所拥有的地址数目的比例是怎样的? 问题4-15:在IP地址中,为什么使用最前面的一个或几个比特来表示地址的类别? 问题4-16:全1的IP地址是否是向整个因特网进行广播的一种地址? 问题4-17:IP协议有分片的功能,但广域网中的分组则不必分片。这是为什么? 问题4-18:路由表中只给出到目的网络的下一跳路由器的IP地址,然后在下一个路由器的路由表中再给出再下一跳的路由器的IP地址,最后才能到达目的网络进行直接交付。采用这样的方法有什么好处? 问题4-19:链路层广播和IP广播有何区别? 问题4-20:主机在接收一个广播帧或多播帧时其CPU所要做的事情有何区别? 问题4-21:有的路由器在和广域网相连时,在该路由器的广域网接口处并没有硬件地址,这怎样解释? 问题4-22:IP地址和电话号码相比时有何异同之处? 问题4-23:“尽最大努力交付”(best effort delivery)都有哪些含义? 问题4-24:假定在一个局域网中计算机A发送ARP请求分组,希望找出计算机B的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的ARP请求分组。试问这时由哪一个计算机使用ARP响应分组将计算机B的硬件地址告诉计算机A? 问题4-25:有人将ARP列入网络接口层,即认为ARP不在IP层,这样对吗? 问题4-26:一个主机要向另一个主机发送IP数据报。是否使用ARP就可以得到该目的主机的硬件地址,然后直接用这个硬件地址将IP数据报发送给目的主机? 问题4-27:在因特网中最常见的分组长度大约是多少个字节? 问题4-28:IP数据报的最大长度是多少个字节? 问题4-29:IP数据报的首部的最大长度是多少个字节?典型的IP数据报首部是多长? 问题4-30:IP数据报在传输的过程中,其首部长度是否会发生变化? 问题4-31:当路由器利用IP数据报首部中的“首部检验和”字段检测出在传输过程中出现了差错时,就简单地将其丢弃。为什么不发送一个ICMP报文给源主机呢? 问题4-32:RIP协议的好处是简单,但缺点是不够稳定。有的书上介绍“触发更新”、“分离范围”和“毒性逆转”。能否简单介绍一下它们的要点? 问题4-33:IP数据报必须考虑最大传送单元MTU (Maximum Transfer Unit)。这是指哪一层的最大传送单元?包括不包括首部或尾部等开销在内? 问题4-34:如果一个路由器要同时连接在一个以太网和一个ATM网络上,需要有什么样的硬件加到路由器上? 问题4-35:教材中的图4-19的B类网络145.13.0.0在划分子网时,所给出的三个子网号是怎样得出的? 问题4-36:“交换(switching)”的准确含义是什么? 问题4-37:为什么生存时间TTL原来用秒作为单位而现在TTL却表示数据报在网络中所能通过的路由器数的最大值? 第5章 运输层 问题5-1:TCP协议是面向连接的,但TCP使用的IP协议却是无连接的。这两种协议都有哪些主要的区别? 问题5-2:从通信的起点和终点来比较,TCP和IP的不同点是什么? 问题5-3:端口(port)和套接字(socket)的区别是什么? 问题5-4:一个套接字能否同时与远地的两个套接字相连? 问题5-5:数据链路层的HDLC协议和运输层的TCP协议都使用滑动窗口技术。从这方面来进行比较,数据链路层协议和运输层协议的主要区别是什么? 问题5-6:TCP协议能够实现可靠的端到端传输。在数据链路层和网络层的传输还有没有必要来保证可靠传输呢? 问题5-7:在TCP报文段的首部中只有端口号而没有IP地址。当TCP将其报文段交给IP层时,IP协议怎样知道目的IP地址呢? 问题5-8:在TCP传送数据时,有没有规定一个最大重传次数? 问题5-9:TCP都使用哪些计时器? 问题5-10:是否TCP和UDP都需要计算往返时间RTT? 问题5-11:假定TCP开始进行连接建立。当TCP发送第一个SYN报文段时,显然无法利用教材中5.6.3节所介绍的方法计算往返时间RTT。那么这时TCP又怎样设置重传计时器呢? 问题5-12:糊涂窗口综合症产生的条件是什么?是否只有在接收方才产生这种症状? 问题5-13:能否更详细些讨论一下糊涂窗口综合症及其解决方法? 问题5-14:为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号? 问题5-15:能否利用TCP发送端和接收端交换报文段的图来说明慢开始的特点? 问题5-16:对于拥塞避免是否也能够用发送端和接收端交换的报文段来说明其工作原理? 问题5-17:TCP连接很像一条连接发送端和接收端的双向管道。当TCP在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择? 问题5-18:假定在一个互联网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障。试问在这种情况下,TCP的“可靠交付”的功能是否就是多余的? 问题5-19:TCP是通信协议还是软件? 问题5-20:在计算TCP的往返时间RTT的公式中,本教材过去的版本是取 = 7/8。但现在的新版本是取 = 1/8。为什么会有这样大的改变? 第6章 应用层 问题6-1:我们经常说“两个计算机进行通信”。我们应当怎样理解这句话? 问题6-2:能否用你的PC机进行一个简单的实验:一个计算机同时和5个计算机进行通信? 问题6-3:因特网中计算机程序之间的通信和电信网中的电话通信有何相同或不同之处? 问题6-4:连接在因特网上的主机名必须是唯一的吗? 问题6-5:在因特网中通过域名系统查找某个主机的IP地址,和在电话系统中通过114查号台查找某个单位的电话号码相比,有何异同之处? 问题6-6:一个单位的DNS服务器可以采用集中式的一个DNS服务器,也可以采用分布式的多个DNS服务器。哪一种方案更好些? 问题6-7:对同一个域名向DNS服务器发出好几次的DNS请求报文后,每一次得到IP地址都不一样。这可能吗? 问题6-8:当使用56 kb/s的调制解调器上网时,经常会发现数据下载的速率远远小于56 kb/s。这是什么原因? 问题6-9:ARP和DNS是否有些相似?它们有何区别? 问题6-10:“网关”和“路由器”是否为同义语? 问题6-11:我们常在文献上看到“远程登录”这样的名词。它的英文名字应当是remote log-in还是Telnet? 问题6-12:电话通信和电子邮件通信是使用客户服务器工作方式吗? 问题6-13:在电子邮件中,“信封”、“内容”、“首部”、“主体”是个什么样的关系? 问题6-14:能否更加细致地介绍一下base64编码? 问题6-15:能否归纳一下HTTP协议的主要特点? 问题6-16:HTTP 1.1协议比起HTTP 1.0协议有哪些主要的变化? 问题6-17:抽象语法、传送语法的主要区别是什么?数据类型、编码以及编码规则的区别又是什么? 第7章 计算机网络的安全 问题7-1:用一个例子说明置换密码的加密和解密过程。假定密钥为CIPHER,而明文为attack begins at four,加密时明文中的空格去除。 问题7-2:拒绝服务DOS (Denial Of Service)和分布式拒绝服务DDOS (Distributed DOS)这两种攻击是怎样产生的? 问题7-3:报文的保密性和报文的完整性有何不同?保密性和完整性能否只要其中的一个而不要另一个? 问题7-4:常规密钥体制与公钥体制最主要的区别是什么? 问题7-5:能否举一个实际的RSA加密和解密的例子? 问题7-6:要进一步理解RSA密码体制的原理,需要知道哪一些数论的基本知识? 问题7-7:怎样证明RSA密码体制的解码公式? 问题7-8:RSA加密能否被认为是保证安全的? 问题7-9:报文摘要并不对传送的报文进行加密。这怎么能算是一种网络安全的措施?不管在什么情况下永远将报文进行加密不是更好一些吗? 问题7-10:不重数(nonce)是否就是随机数? 问题7-11:在防火墙技术中的分组过滤器工作在哪一个层次? 第8章 因特网上的音频/视频服务 问题8-1:为什么说传统的因特网本身是非等时的? 问题8-2:IP协议是不保证服务质量的。可是因特网的成功可以说在很大的程度上得益于IP协议。那么IP协议最主要的优点是什么? 问题8-3:端到端时延(end-to-end delay)和时延抖动(delay jitter)有什么区别? 问题8-4:能否简单归纳一下,为了适应多媒体信息的传输,目前对因特网应如何演进,都有哪三种主要观点? 问题8-5:在教材第8章的图8-2中的缓存(其作用是将非恒定速率的分组变为恒定速率的分组)是否就是在运输层中的接收缓存? 问题8-6:假定在教材第8章图8-19中对应于三种分组流的权重分别为0.5,0.25和0.25,并且所有的分组流都有大量分组在缓存中。试问这三种分组流被服务的顺序可能是怎样的(对于轮流服务的情况,被服务的顺序是1 2 3 1 2 3 1 2 3&hellip;)? 问题8-7:假定在问题8-6中,只有第一类和第二类分组流有大量分组在缓存中,而第三类分组流目前暂时没有分组在缓存中。试问这三种分组流被服务的顺序可能是怎样的? 第9章 无线网络(略) 第10章 下一代因特网 问题10-1:本章叫做“下一代因特网”。这是否意味着前面几章讨论的因特网协议都属于传统的因特网,而只有本章讨论的内容才涉及到因特网的一些新的演进? 问题10-2:三网融合是目的吗? 有关广域网WAN的问题 问题WAN-1:广域网在地理上覆盖的范围较大,那么能不能说“凡是在地理上覆盖范围较大的网络就是广域网”? 问题WAN-2:在广域网中的结点交换机是否就是路由器? 问题WAN-3:为什么在第5版的《计算机网络》取消了“广域网”这一章? 问题WAN-4:为什么ATM信元的有效载荷规定为48字节? 问题WAN-5:异步传递方式ATM和同步传输有什么关系? 问题WAN-6:是否SDH/SONET只能为ATM使用? 问题WAN-7:在ATM中发送端或接收端的传输汇聚子层TC能否辨认出不同的虚通路VC? 问题WAN-8:按照分层原理,下层不检查上层协议数据单元PDU的首部。在ATM中,在传输汇聚子层TC上面的是ATM层。那么TC子层是否也不检查ATM信元的首部?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值