
TCP/IP
新人欢
这个作者很懒,什么都没留下…
展开
-
TCP/IP协议卷学习---TCP部分(十一 慢启动)
1 慢启动存在原因发送方一开始便向网络发送多个报文段,直至达到接收方通告的窗口大小为止。当发送方和接收方处于同一个局域网时,这种方式是可以的。但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出现一些问题。一些中间路由器必须缓存分组,并有可能耗尽存储器的空间。“慢启动 (slow start) ”算法。该算法通过观察到新分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。2 拥塞窗口拥塞窗口 (congestion window) ,记为cwnd,当与另一个网络的主机建立原创 2020-06-04 16:23:32 · 309 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(十 TCP的成块数据流)
1 滑动窗口与停止等待在TFTP协议中使用的停止等待协议,即发送一个数据之后需要等待接收到确认之后才能发送下一份数据。滑动窗口允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。2三种数据流(1) 正常数据报文段7的A C K的序号之所以是2 0 4 8而不是3 0 7 3是由以下原因造成的: 当一个分组到达时,它首先被设备中断例程进行处理,然后放置到 I P的输入队列中。三个报文段 4、5和6依次到达并按接收顺序放到 I P原创 2020-06-04 16:22:13 · 218 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(九 TCP的交互数据流)
1 交互数据流与成块数据流按照分组数量计算,约有一半的TCP报文段包含成块数据(如FTP、电子邮件和Usenet新闻),另一半则包含交互数据(如telnet和rlogin) 。如果按字节计算,则成块数据与交互数据的比例约为90%和10%。因此TCP处理两种数据的方式也不一样。2 交互式输入rlogin的交互式输入是每敲一个字符便进行四次交互,客户端发送键入的字符,服务端响应一个ACK,服务端响应一个回显的字符,客户端再发送一个ACK。telnet则可以在整行的数据键入之后做一次交互。如图数据字节的确原创 2020-06-04 16:20:00 · 167 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(八 TCP服务器)
1 呼入请求队列①正等待连接请求的一端有一个固定长度的连接队列,该队列中的连接已被TCP接受(即三次握手已经完成) ,但还没有被应用层所接受。注意区分 T C P接受一个连接是将其放入这个队列,而应用层接受连接是将其从该队列中移出。②应用层将指明该队列的最大长度,这个值通常称为积压值 ( b a c k l o g )。它的取值范围是0 ~ 5之间的整数,包括 0和5(大多数的应用程序都将这个值说明为 5)。③当一个连接请求(即S Y N)到达时,T C P使用一个算法,根据当前连接队列中的连接数来确原创 2020-06-04 16:18:52 · 168 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(七 TCP选项)
1 选项内容每个选项的开始是 1字节kind字段,说明选项的类型。kind字段为0和1的选项仅占 1个字节。其他的选项在kind字节后还有len字节。它说明的长度是指总长度,包括kind字节和len字节。原创 2020-06-04 16:18:05 · 224 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(六 复位报文)
1 复位报文作用TCP首部中的RST比特是用于“复位”的。一般说来,无论何时一个报文段发往基准的连接(referenced connection)出现错误,TCP都会发出一个复位报文段(这里提到的“基准的连接”是指由目的 I P 地址和目的端口号以及源 I P 地址和源端口号指明的连接。)2 产生时机① 到不存在的端口的连接。对于UDP,当一个数据报到达目的端口时,该端口没在使用,它将产生一个ICMP端口不可达的信息。而TCP则使用复位。② 异常终止一个链接。终止一个连接的正常方式是一方发送 F I原创 2020-06-04 16:17:04 · 258 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(五 MSL)
1 2MSL等待TIME_WAIT状态也称为2MSL等待状态。每个具体TCP实现必须选择一个报文段最大生存时间MSL(Maximum Segment Lifetime) 。它是任何报文段被丢弃前在网络内的最长时间。实现中的常用值是30秒,1分钟,或2分钟。对一个具体实现所给定的MSL值,处理的原则是:当TCP执行一个主动关闭,并发回最后一个ACK,该连接必须在TIME_WAIT状态停留的时间为2倍的MSL。这样可让TCP再次发送最后的ACK以防这个ACK丢失(另一端超时并重发最后的 F I N) 。这种原创 2020-06-04 16:15:31 · 1051 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(二 TCP连接的建立与终止)
1 建立连接① 请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN)。这个SYN段为报文段 1。② 服务器发回包含服务器的初始序号的 SYN报文段(报文段2)作为应答。同时,将确认序号设置为客户的 ISN加1以对客户的 SYN报文段进行确认。一个 SYN将占用一个序号。③ 客户必须将确认序号设置为服务器的 ISN加1以对服务器的 SYN报文段进行确认(报文段3)。2 ISN序号系统初始化时初始的发送序号被初始化为1。这个变量每0.5秒增加64000,并每隔原创 2020-06-03 18:45:43 · 171 阅读 · 0 评论 -
TCP/IP协议卷学习---TCP部分(一 概述)
1 什么是TCPT C P提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。2 TCP如何提供可靠性①应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)。②当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如原创 2020-06-03 18:44:32 · 226 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(十六 BOOTP)
1 RARP与BOOTP无盘系统,它在不知道自身IP地址的情况下,在进行系统引导时能够通过RARP来获取它的IP地址。然而使用RARP有两个问题: (1)IP地址是返回的唯一结果;(2)既然RARP使用链路层广播,RARP请求就不会被路由器转发(迫使每个实际网络设置一个RARP服务器)。一种用于无盘系统进行系统引导的替代方法,又称为引导程序协议,或BOOTP。2 BOOTP分组格式①“操作码”字段为 1表示请求,为 2表示应答。硬件类型字段为 1表示10 Mb/s 的以太网,这和A R P请求或应原创 2020-06-03 18:41:56 · 701 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(十五 TFTP)
1 概念TFTP ( Trivial File Transfer Protocol) 即简单文件传送协议,最初打算用于引导无盘系统(通常是工作站或 X终端)。和使用TCP的文件传送协议(TFP)不同,为了保持简单和短小,TFTP将使用UDP。2 报文① T F T P报文的头两个字节表示操作码。对于读请求和写请求( W R Q)。文件名字段说明客户要读或写的位于服务器上的文件。这个文件字段以 0字节作为结束。模式字段是一个A S C I I码串n e t a s c i i或o c t e t(可原创 2020-06-03 18:40:44 · 166 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(十四 DNS)
1 域名层次结构顶级域名被分为三个部分:① arpa是一个用作地址到名字转换的特殊域。② 7个3字符长的普通域。③ 所有2字符长的域均是基于ISO3166中定义的国家代码,这些域被称为国家域或地理域。2 子域的划分一个独立管理的DNS子树称为一个区域 (zone) 。一个常见的区域是一个二级域,如baidu.com。许多二级域将它们的区域划分成更小的区域。一旦一个区域的授权机构被委派后,由它负责向该区域提供多个名字服务器。当一个新系统加入到一个区域中时,该区域的DNS管理者为该新系统申请原创 2020-06-03 18:39:30 · 227 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(十三 IGMP)
1 IGMPInternet组管理协议(IGMP) 。它让一个物理网络上的所有系统知道主机当前所在的多播组。多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。① 版本② 类型,为1说明是由多播路由器发出的查询报文,为 2说明是主机发出的报告报文。③ 校验和,与ICMP校验和计算方式相同。④ D类IP地址,在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。2 加入一个多播组多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序) ,该进程在一个主机的给定原创 2020-06-03 18:34:33 · 198 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(十二 广播和多播)
1 概念IP地址有3种,单播地址,多播地址和广播地址。广播地址和多播地址仅适用于UDP。TCP表示的是两个服务进程之间的唯一链接,所以只能使用单播地址。单播的这种通信方式不会影响其他主机之间的通信(除了争抢信道之外),广播需要发送给所有主机,但某些特殊情况不需要所有主机都做处理,会造成其他主机负荷工作,因此出现了多播。对于以太网,当地址中最高字节的最低位设置为 1时表示该地址是一个多播地址,用十六进制可表示为01:00:00:00:00:00。以太网广播地址ff : ff : ff : ff : ff原创 2020-06-03 18:33:09 · 205 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(十一 UDP 用户数据报协议)
1 UDP数据报①源端口目的端口,最大65535②16位UDP长度,包括UDP头部以及数据长度,最小为8字节(即数据为空)③16位UDP校验和校验的是头部+数据,IP协议中的数据校验和只有IP头。TCP的校验和是必须要的,UDP是非必须的。在UDP中,数据长度是可以为奇数的,但是校验和的计算是需要N个16bit的和,因此为了方便计算,UDP数据不够的情况下可以用0填充,在实际传输的时候填充的这些可以不用实际传输。2 UDP/TCP伪首部UDP数据报和TCP段都包含一个 12字节长的伪首部,它是为原创 2020-06-03 18:30:42 · 272 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(十 IP动态选路(不完善,需要在多看几遍))
1 动态选路当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路。路由器之间必须采用选路协议进行通信,这样的选路协议有很多种。动态选路并不改变选路机制(主机-网络-默认路由),仅仅是放置到路由表中的信息改变了,当路由随时间变化时,路由是由路由守护程序动态地增加或删除,而不是来自于自引导程序文件中的route命令。如果守护程序发现前往同一信宿存在多条路由,那么它将选择最佳路由并加入内核路由表中。如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或电话线路不好),它可以删原创 2020-06-03 18:29:03 · 148 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(九 IP静态选路)
1 选路的原理匹配主机地址始终发生在匹配网络地址之前。①搜索匹配的主机地址②搜索匹配的网络地址③选择默认的路由地址2 路由表netstat -rn 可以列出当前网络的路由地址Flags含义:U 该路由可以使用。G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址(主机部分为0):一个网络号,或者网络号与子网号的组合。D 该路由是原创 2020-06-03 18:27:11 · 195 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(八 Traceroute程序)
1 为什么会有Traceroute①一些TCP/IP实现不会处理IP包中的选项,或者不试别选项中的RR,所以不会记录中间的路由地址。②记录器一般是单向的,下一个路由需要解析上一个路由的IP报并把出口地址加入进去。③IP数据报首部最大长度为60字节,导致记录的IP有限。2 traceroute实现traceroute程序使用ICMP报文和IP首部中的TTL字段(生存周期)。先发送一个TTL为1的,然后逐次增加。TTL字段是由发送端初始设置一个 8 bit字段。每次经过一个路由TTL就会减一,这样变作原创 2020-06-03 18:21:20 · 203 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(七 PING程序)
1 pingping本身是基于ICMP完成的,因此在发送第一个ping请求之前首先要走ARP的那一套流程,因此一般第一个请求都会比后续请求慢一些。2 IP记录路由选项ping -R xxx 可以记录访问xxx地址中间经过的路由地址。这样会在ping请求发出时在IP报文的选项中添加RR选项,中间的路由解析IP报文之后会把出口的IP地址加入进去。code表示IP选项类型,RR选项的值为7,len是选项的总长度。因为IP首部最长为60字节,默认占有20字节,因此选项的总长度为40字节,这里RR选项头有3原创 2020-06-03 18:20:03 · 139 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(六 ICMP控制报文协议)
1 ICMP作用ICMP可以认为是IP协议的一个组成部分,但又在IP协议之上。用来传递差错报文以及其他需要被注意的信息。通常被IP以及更高层(TCP/UDP)使用,还有一些ICMP报文被返回到用户进程。2 ICMP报文所有ICMP的前四个字节都是一样的,之后的则互不相同。8位类型字段用来描述特定类型的ICMP报文,8位代码用来补充类型字段的具体描述。16位校验和与IP计算方式相同。3 ICMP报文类型不同类型由报文中的类型字段和代码字段来共同决定,图中最后两列表示是查询报文还是差错报文,部分差错原创 2020-06-03 18:17:50 · 311 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(五 RARP协议)
1 RARP的数据包RARP分组的格式与ARP分组基本一致。它们之间主要的差别是RARP请求或应答的帧类型代码为0x8035,而且RARP请求的操作代码为3,应答操作代码为4。对应于ARP,RARP请求以广播方式传送,而RARP应答一般是单播传送的。一个RARP请求在网络上进行广播,它在分组中标明发送端的硬件地址,以请求相应IP地址的响应。应答通常是单播传送的。2 RARP服务器一般一个网络中都会有多个RARP服务器,发送RARP请求的无盘系统一般采用最先收到的RARP应答。3 无RARP服务器原创 2020-06-03 18:13:02 · 227 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(四 ARP协议)
1 ARP过程(ftp bsdi bsdi一个域名举例)①通过DNS解析出主机IP地址②准备与目标地址建立TCP链接,发送TCP数据包并通过IP包装③如果目标主机在本地网络上,那么数据可以直接发送到目标主机,如果数据不在本地网络上,则通过选路函数先发送给默认路由,再有下一站路由转发④假定目标机器是本地以太网上的一台机器,则需要知道这台机器的MAC地址才能发送数据,因此首先需要将ARP请求广播到本地网络的每台主机上。包括目标主机的IP,意思为谁为这个IP则回复你的MAC地址⑤目标主机收到这份广原创 2020-06-03 18:12:02 · 186 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(三 IP网际协议)
1 IP首部报文IP首部每行起始位为0bit位,末尾位为31bit位,在传输时,首先是 0~7 bit,其次8~15 bit,然后1 6~23 bit,最后是24~31 bit。这种传输次序称作big endian字节序,也称网络字节序。①4位版本,目前协议版本号为4,所以现在IP协议也称IPV4。②4位首部长度,指的是首部占32字节的行数(一行32bit),默认为5行,最长为15行,即60字节。③8位服务类型,前三个bit为优先权字段(现已废弃),最后一个bit无用,固定为0。中间四个bit代表原创 2020-06-03 18:10:03 · 292 阅读 · 1 评论 -
TCP/IP协议卷学习---基础部分(二 链路层)
1 链路层的三个目的:①为IP模块发送和接收IP数据报;②为ARP模块发送ARP请求和接收ARP应答③为RARP发送RARP请求和接收RARP应答2 以太网和IEEE802封装以太网地址为48bit(MAC地址),802.3允许16bit地址,不过大部分依然是48bit。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充(pad)字节。3 SLIP与CSLIPSLIP:串行线路IP。帧格式特点如下:①IP数据报以一个原创 2020-06-03 18:03:54 · 183 阅读 · 0 评论 -
TCP/IP协议卷学习---基础部分(一 概述)
一 概述1 OSI分层2 TCP/IP分层3 以太网/令牌环网令牌环网:多组机器之间只有一个令牌,谁拿到令牌谁就可以发送数据,令牌会在多台主机之间循环传递。目前比较少用以太网:采用总线的形式进行传递,每台主机在要发送信息时先判断当前是否有其他机器再发送,如果没有则发送,如果有则等待,如果两台机器同时发送则分别等待一段随机时间之后在发送,其余时间均处于监听状态,查看总线上的消息是否是自己的,如果不是则丢弃。4 ICMP/IGMPICMP与IGMP都是IP协议的附属协议。ICMP(Inter原创 2020-06-03 17:55:39 · 240 阅读 · 0 评论