版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章常见操作系统TCP/IP协议实现计算机网络防范中心张玉清第1章1.1 Windows的TCP/IP 实现1.2 UNIX/Linux的TCP/IP 实现2015/4/121.1 Windows的TCP/IP 实现n一个标准的、可以路由的企业网络互联协议,也是可用协议中最完整和最为大众所接受的。一种连接不同系统的技术。一个健壮的、可扩展的、跨平台的客户/服务器框架。nnInternet 的方法。n一种2015/4/13Windows TCP/IP网络模型(以Windows2000为例)2015/4/11.1 Windows的TCP/IP 实现1.1.1 IP1.1.1层传输层1.1.1 T
2、CP/IP开发接口2015/4/15Windows网络协议使用网络设备接口规范(NDIS,Network Driver Interface Specification)网卡驱动程序进行通信。OSI模型中数据链路层的大部分功能在该协议中实现。NDIS主要包括以下扩展功能:NDIS电源管理(用于网络电源管理和网络唤醒) 即插即用对诸如TCP和UDP校验和之类任务的任务分载机制和快速包转发支持QoS支持中间驱动器(broadcast pc、虚拟局域网,面向QoS的包调度,IEEE134 网络设备的NDIS支持等需要使用中间驱动器)nnnnn2015/4/1当系统请求电源级别改变时,NDIS就切断网络
3、适配器的电源。NDIS 电源管理策略的前提是没有网络活动。nn在切断网络适配器电源之前,所有上层网络组件必须同意该请求。如果网络上还存在活动会话或者打开的文件,断电请求就会被其中一个或所有相关组件拒绝。计算机也能被网络号:从低电源级别中唤醒,以下情况会导致唤醒信nnn检测到网络链路状态的改变(例如,电缆重新连上)。接收到网络唤醒帧。接收到巨包(Magic Packet),巨包是包含连续1个接收方网络(MAC)地址适配器介质的数据包。2015/4/1在驱动器初始化时,NDIS微端口驱动器的能力以判定是否支持诸如巨包、模式匹配和链路状态改变唤醒等唤醒方 式,并决定每种唤醒方式所要求的最低电源状态。
4、在运行时,协议设置使用对象标识符的唤醒策略,例如启用唤醒、设置包模式和删除包模式等。目前,Windows TCP/IP 支持网络电源管理,它在微端口初始化时如下包模式。n 直接IP 包。n 请求站IP 地址的ARP 广播。n 请求站计算机名的TCP/IP 上的广播。2015/4/1与NDIS 兼容的驱动程序适用于不同厂家的各种各样的网络适配器。NDIS 接口允许多个不同类型的协议驱动程序绑定到同一个网络适配器驱动程序,也允许将同一个协议绑定到多个网络适配器驱动程序上。NDIS 实现这一点的多路复用机制。规范描述了2015/4/1链路层功能分布在 网络适配器/驱动程序组合 和低层协议栈驱动程序上
5、。对LAN 介质,网络适配器驱动程序组合的过滤功能基于帧的目的MAC 地址。正常情况下,LAN 硬件过滤掉目的地址不是以下地址之一的所有来帧。适配器的单播MAC 地址。广播地址(对以太网,广播地址是0xFFFFFFFFFFFF )。nnn通过协议驱动程序利用硬件的多播地址。如果某个帧将这些地址之一作为其目的MAC 地址,就能通过计算校验和来检查该帧的比特级完整性。2015/4/110所有通过了目的地址校验和检查的帧,都通过硬件中断提交给网络适配器驱动程序。网络适配器驱动程序再通过接口卡把帧送入系统内存,然后 再按组成帧时的顺序提交给特定的绑定传输驱动程序。在路由网络中,源和目的MAC 地址在经
6、过网络层设备(路由器或第三层交换机)的每一段时会改变。当一个包经过一个或一系列网络时,其源MAC 地址是把该包放到传输介质上的网络适配器的MAC 地址;n而它的目的MAC 络适配器的MACn地址总是通过该传输介质欲到达的网地址。2015/4/1111.1.2 IP层2015/4/1121.1.2 IP层ARPIP路由重复IP地址检测2015/4/1ARP决定帧的目的MAC 地址是ARP 的任务。对外出IP 数据报,ARP 将其转发IP 地址与ARP 缓存进行比较,以查找包将发往的网络适配器。高速2015/4/1ARP
7、Windows 能根据系统要求自动调整ARP 高速缓存的大小。如果一个表项2分钟内未被任何外出数据报使用,就从ARP 高速缓存中删除掉。n过的表项赋以追加时间,每次增加2 分钟,直到n被最大生命值时间10 分钟。10 分钟后,就从ARP 高速缓存中删除该表项,如果要继续使用,必须通过ARP 请求帧重新查找。n2015/4/1ARPWindows也能根据从ARP 请求中得到的信息来更新ARP 表项。如果ARP请求者的IP 地址在高速缓者的MAC 地址更新表项。存中,就用在将目的IP 地址成MAC 地址时,ARP 仅能对一个外出IP 数据报进行排队。如果基于UDP 的应用程序连续
8、地向同一目标地址多个IP 数据报,某些数据报会因为不存在相应ARP 速缓存表项而被丢弃。高2015/4/11网络与防范讲义IP路由路由选择是IP层的基本功能。数据报经由网络适配器提交给IP ,每个数据报都有源和目的IP 地址。IP 模块检查每个数据报的目的地址, 并与本地维持的IP 路由表作比较,以决定采取什么行动。对每个数据报,都有3 种可能:机IP 层之上的nnn提交给本协议通过本地某一网络适配器转发丢弃2015/4/IP路由Windows 提出了默认网关度量的新配置选项。该度量提供对任意时刻活动默认网关进行更好的控制。 该度量默认值为1 ,低度量路由比高度
9、量路由好。默认网关度量可以通过TCP/IP高级配置选项进行设置。DHCP 服务器能提供一个基本度量和一组默认网关。如果DHCP 服务器提供的基本度量为100 ,并提供3 个默认网关,那么这三个网关的度量分别为100、101和102 。2015/4/IP路由大多数自治系统(AS )路由器用路由选择信息协议( RIP )或开放最短路径优先(OSPF)同其他路由器交换路由表信息。Windows 以路由选择和服务支持这些协议。服务包含在Windows 中,可以启路由选择和用并通过配置提供完全的多协议路由选择服务。2015/4/重复IP地址检测重复IP 地址检测保证每
10、个IP 结点所使用的IP 地址在其所连接的网段上是惟一的。当协议栈第一次初始化时,Windows 对主机自身IP 地址ARP 请求包自己的IP 地址,称之为伴随ARP 。如果任何其他主机响应了这样的ARP 请求,该地址就已经被占用了。检测到的计算机将显示一条出错消息,并在系统日志中产生详细的日志。2015/4/1重复IP地址检测Windows DHCP 允许客户机执行重复IP 地址检测,条件是客户机进入DHCP 选择状态。如果检测到重复IP 地址,DHCP 客户机就向DHCP 服一个DHCP 拒绝数据包,然后进入DHCP 初务器始化状态。在收到DHCP 拒绝数据包后,DHCP
11、 服务器就将该IP地址置为不可用。2015/4/1211.1.3传输层 TCP UDP2015/4/1 TCPTCP 接收窗口大小是指每次在接上能缓存的接收数据量(以字节计)。在接收主机等待应答数据并更新窗口之前,主机只能这么多数据。Windows TCP / IP 设计成能在大多数情况下进行自我调节,从而能比以前版本使用更大的默认窗口。TCP 的窗口大小能适应连接建立期间所协商的最大段长(MSS,Maxitum Segment Size)的平缓增加,提高了大批数据传输过程中使用的满载TCP 段的比例。2015/4/1 TCP默认
12、情况下接收窗口大小按如下方式计算。n发往主机的第接请求通告一个接收窗口大小,一般为1千字节(KB),即1 34字节。n一旦建立了连接,接收窗口大小就舍入成连接建立期间所协商的TCP 最大段长(MSS )的整数倍。如果舍入值不到MSS的4倍,就把它调整到4xMSS , 同时最大值限制为4KB,除非窗口缩放选项被启用。基于以太网的TCP 连接,其窗口大小正常时为1 520字节,或舍入到1KB (即12个140字节的字段)。nn2015/4/1 TCP为了提高高带宽、高延迟网络的性能,Windows TCP 支持RFC1323 中定义的TCP 窗口缩放。通过在TCP 三次握手期间商
13、定一个窗口缩放因子,支持TCP 接收窗口的大小可大于4KB ,它支持的接收窗口最大可达1GB 。通告的窗口大小要乘以商定的缩放因子。窗口缩放因子只在三次握手的前两个段中出现。缩放因子是2s ,其中s 为商定缩放因子。例如,对缩放因子为3 的通告窗口大小5 535 ,实际接收窗口大小为524 250 即23x5535 。nnnn2015/4/1 TCPTCP 采用延迟应答来减少传输介质中的包数。Windows TCP 采用变通的方法实现延迟ACK ,并不对每个接收到的TCP 段应答。TCP 在给定连接上收到数据,只有当以下条件符合时才回送应答。过ACK 。nn没有为以前接收到的
14、段接收到一个段,但在该连接上200ms 之内没有接收到其他段。通常为连接上接收到的每个其他TCP 段都直到延迟ACK 定时器(200ms)超时。ACK ,n2015/4/ TCPWindows 开始支持一项称为选择性应答(SACK )的重要性能特性。n SACK 对使用较大TCP 窗口的连接很重要。ü 在SACK 之前,接收者只能应答连接上接收到的最后一个数据,或接收窗口的左边界。ü 当SACK 启用时,接收者连续地使用ACK 编号来应答接收窗口的左边界,但接收者也能对不谁续的接收数据块单独进行应答。n SACK 在TCP 连接建立期间用TCP报头选项来协
15、商SACK 的使用,并标明接收数据块的左右边界,可以指示多个接收块。n 默认情况下,SACK 是启用的。2015/4/ TCPTCP 重为当每个出站段传递给IP 时,TCP 都启动一个重发定时器。如果在定时器超时前没收到给定段中数据的应答, 就重发该段。n对于新的连接请求,重发定时器初始化为3 秒。重发超时(RTO )在外出段的基础上进行调整,以匹配使用平滑往返时间(SRTT)计算的连接特性和Karn 算法。给定段的定时器值在每次重发该段后就加倍。üüü2015/4/ TCPTCP 保持活动消息TCP 保持活动包是一个简单的AC
16、K ,其序列号比本连接的当前序列号小1。主机接收到这种ACK 后,就以当前序列号应答。nnnTCP 保持活动包每个时间段内一次,时间段的长短由KeepAliveTime 的值(默认为 200 000ms ,即2h )决定, 前提是没有其他数据或更高级别的保持活动包在本连接中传输。如果保持活动包没被应答,就在每个时间段重发一次,时间段的长度是与KeepAliveInerval的值相等的秒数。默认时KeepAlivelnterval 的值为1s。nn保持活动可用来证实本连接的计算机仍是可用的。 nTCP 保持活动功能默认时是关闭的。2015/4/ TCPWindows TCP 也
17、支持慢启动和拥塞避免算法。接建立后,TCP起先只缓慢地n数据来估计连接的带宽,以避免淹没接收主机或通路上的其他设备和链路。n此时,慢启动算法就不再用了,改用制。的接收窗口进行流控在传输中的任何时刻都可能发生拥塞,TCP 拥塞避免算法就n减小窗口的大小,并使其逐步减小到拥塞发生时的窗口大小的一半,然后,使用慢启动算法来增大接收主机接收窗口的大小。窗口,使其达到2015/4/130 TCP傻窗口综合症(SWS ):TCP 段。的接收窗口小于一个完整的很小的TCP 段,致使网络使n糊涂窗口综合症会导致用效率非常低。Windows TCP / IP 实现了RFC1122 中描述的和接收者
18、SWS 避免。n者接收端SWS 避免的实现是:在增加的数据小于1个TCP 段之前不打开接收窗口。ü端SWS 避免的实现是:在接收端ü完整TCP 段的有效窗口大小之前不数据。端SWS 避免有例外情况,参见RFC1122 。2015/4/13 TCPTCP TIME -OUT 延时。TCP 连接关闭后,该连接就进入一种称为TIME-OUT 的状n使用相同的协议、源IP 地址、目的态,以确保新连接IP 地址、源端口和目的端口,直到经过了足够长的时间,能确定有任何被错误路由或延迟的段突然出现。套接字对不应当被再次使用的时间长度由RFC3n定义,一般为最大生命周期的两
19、倍(2MSL )或240s (4min),这是Windows 的默认值。2015/4/13 TCPWindows 对这种情况提供两种控制方法。n表表项TcpTimedwaitDelay (ü第一种:用HKLMSYSTEM CurrentControlset SerVices TcpipParameters )来改变这个时间值。表表项MaxUserPort ( HKLM SYSTEü第二种:通过CurrentControlset services TcpipParameters )来配置源出连接的用户可的临时端口数。n默认情况下,当应用程序为出站调用申请任何套
20、接字时,将采在1024-5000 的端口。用端表表项MaxUserPort 设置出站连接可使用的最n用户可通过。例如,将值设为10 000 将有大约000 个可供出高端站连接使用的用户端口。2015/4/13 TCP吞吐量因素Windows TCP /IP 在大多数网络条件下都适用,它能为每个连接动态地提供可能的最大吞吐量和最佳可靠性。一个链路上的实际吞吐量与很多因素有关,最主要的有以下几个:链路速度(每秒可传输的比特数)、传nn播延迟、窗口大小(TCP 连接上可的未响应数据量)、链路可靠性、网络和中间设备拥塞。2015/4/13 TCPn吞吐量的关键因一:通信
21、信道的容量,即带宽延迟量,是往返时间乘以带宽(比特率)。n吞吐量的关键因二:延迟,取决于向不同传输方向传送光或电信号的延迟以及传输设备和中间系统的延迟。n吞吐量的关键因的速度和介质三:传输延迟,取决于传输介质控制模式的本质属性。2015/4/13 UDP用户数据报协议(UDP )提供无连接、不可靠的传输服务。它通常用于使用广播或多播IP 数据报的一到多通信。由于UDP 数据报的传送是得不到保证的,所以使用UDP 的应用程序必须通过简单的重发或其他可靠性机制来补偿丢失 的UDP 数据报。Windows 网络使用UDP 进行登录、浏览和NetBIOS 名字。UDP 可用于NetBI
22、OS 名字,方法是通过NetBIOS 名系统(DNS )字服务器单播或子网广播,也可用于将成IP 地址。主机名2015/4/ UDPNetBIOS 名字由UDP 端口13完成DNS使用UDP 端口53 。由于UDP 本身不保证数据报的传送,这两种服务在收不到重发机制。回答时,就使用自己的UDP 广播数据报一般不用IP 路由器转发,因此路由环境下的NetBIOS 名字需要WindowsInternet名字服务(WINS)之类的名字服务器,或者使用静态数据库文件,如Lmhost 文件。2015/4/131.1.4 TCP/IP开发接口Windows 网络应用程序可采用多种方法通过
23、TCP /IP协议栈进行通信。许多老的应用程序是根据NetBIOS 接口编写的,由TCP/IP上的NetBIOS 支持。Windows 套接字编程接口nn该接口基于加利福尼亚大学伯克利分校的套接字接口。包括一组扩展设计以充分利用Windows 的消息驱动特性。Windows 包含大量的基于Windows 套接字的应用程序, 如Ping 和Tracert 工具、FTP 和DHCP 客户机及服务器, 以及Telnet 客户。2015/4/131.2 UNIX/Linux的TCP/IP 实现在UNIX和Linux系统中,协议栈的实现通常都采用BSD或STREAMS两种结构之一。从概念上看,STREA
24、MS结构是一种模块化的系统结构,具有很好的灵活性和扩展性,而BSD结构是一种分层结构。BSD结构比较简单,但扩展性不如STREAMS结构。STREAMS结构可以在同一个系统中同时实现多种传输协议而提供统一的结构和对上层的接口。n2015/4/13网络与防范讲义1.2 UNIX/Linux的TCP/IP 实现STREAMS应用Sockets库STREAMS应用XT/TLI库BSD应用程序协议栈结构和Socket 层STREAM头STREAM头sockmodtimod协议层TCP、UDP、IPTransport providerNetwork Provider网络接口层协议栈结构DLPI设备驱动设
25、备驱动TPI:Transport provider InterfaceDLPI:Data Link Provider Interface2015/4/140BSDSTREAMSDLPITPI1.2 UNIX/Linux的TCP/IP 实现1.2.1 Linux1.2.2 Linux1.2.3 Linux网络协议栈网络数据处理流程的IP路由2015/4/1411.2 UNIX/Linux的TCP/IP 实现Linux 中,协议栈是作为内核的一部分实现的,因此它包含在内核代码中。Linux 的协议栈可以支持多种协议。n在物理链路层,除了支持以太网外,还可以支持帧中继、FDDI 等。在传输层除了TC
26、P/IP 协议族中的UDP 和TCP ,还可以支持AppleTalk 、IPX等传输层协议。n2015/4/1421.2.2 Linux网络数据处理流程SOCKETX.25ETUNIXINET协议栈结构AppleTalkIPXUDPTCPIPFDDI帧中继以太网硬件硬件硬件2015/4/143Linux1.2.2 Linux网络数据处理流程应用程序产生数据应用程序产生数据应用层socket层传输层转发给本地无法转发网络层将数据包转发到哪?转发给是发往本地的?否物理链路层2015/4/144传输数据接收到数据将数据交给物理链路层丢弃在路由表中查找下一跳地址将数据包交给网络层丢弃将数据包交给网络层将数据包交给传输层将数据包交给传输层将数据包交给socket层将数据包交给socket层1.2.2 Linux网络数据处理流程是按应用层、socket 层、传输层、网络层、数据的数据链路层从上到下的顺序进行分层处理的,而接收到的 数据则正好是按照相反的顺序从下向上进行处理的。应用程序产生数据后,就将其通过socket 提交给传输层(TCP 或UDP),传输层将其交给网络层处理。在网络层,Linux 内核会在路由缓存或转发信息库中查找路由信息。n如果数据包是发给其他计算机的,内核就会将其交给链路层输出到网络接口,并最终上。到物理传输介质201
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全新装修工程合同材料供应及违约金规定2024年版2篇
- 2024分包运输合同
- 2024年共创项目商务合作合同版B版
- 2024年度砂石材料安全采购合同2篇
- 2024年度软件开发合同:某互联网公司与某金融机构就金融信息系统的定制开发合同2篇
- 2024年专项倒贷资金过桥借款合同版
- 二零二四年智能化系统集成项目合同
- 2024专业工程内包合作合同范本版B版
- 二零二四年度施工监理合同:高速公路建设项目
- 房产抵押合同2024年度独家定制2篇
- 《冠心病》课件(完整版)
- 小学信息科技《数据与编码-探索生活中的“编码”》教学设计
- 2024年云网安全应知应会考试题库
- 双碳综合能源平台方案建设
- 观赏鱼饲养智慧树知到期末考试答案章节答案2024年华南农业大学
- 毛泽东思想概论 课件 第六章 革命军队建设和军事战略理论
- 传统园林技艺智慧树知到期末考试答案2024年
- 铁道概论(第八版)佟立本主编
- 国家开放大学《教育研究方法》形考任务1-3+终结性考完试参考答案
- 超星尔雅学习通《红色经典影片与近现代中国发展》章节测试答案
- 化工静设备知识
评论
0/150
提交评论