收藏 分销(赏)

详解计算机网络协议.docx

上传人:二*** 文档编号:4510954 上传时间:2024-09-26 格式:DOCX 页数:17 大小:557.29KB
下载 相关 举报
详解计算机网络协议.docx_第1页
第1页 / 共17页
本文档共17页,全文阅读请下载到手机保存,查看更方便
资源描述
详解计算机网络协议 入网络协议,以图文并茂的方式细说网络技术细节。 目录 1. OSI七层协议 2 1. 1.物理层 2 1.2.数据链路层: 2 1. 3.网络层: 2 1. 4. 传输层 3 1. 5. 会话层 4 1. 6. 表示层 4 2. 7. 应用层 4 3. TCP/IP 协议 5 4. 传输层: 6 5. 传输层主要有两种协议:UDP和TCP 7 4. 1. UDP协议特点: 7 5. 2. TCP 协议 7 6. TCP报文段的首部格式 8 7. TCP可靠传输的实现 10 7.1. 通过滑动窗口来发送数据 10 6. 2.超时重传时间的选择 10 7. 3.确认 10 8. TCP传输连接管理 10 9. 连接建立(三次握手) 11 8 . 1.为何需要第三次握手? 11 9 .连接释放(四次挥手) 12 9. 1.为什么需要2MSL的等待时间? 12 10.应用层 13 10. 1. 协议特点: 13 11. 与 S 的区别: 15 第1页共15页 6. TCP可靠传输的实现 6.1. 通过滑动窗口来发送数据 提供的窗口 由接收方通告 » :可用的窗口 二 1 2 3 4 5 6 \ 7 8 9 10 11 不能够发送, 发送并被确认 A » ► 发送,但未被确认 ► 直至窗口移动 能够发送ASAP 发送窗口有两局部组成,已发送的报文段和能够发送但未发送的报文段 (等待已发送报文段全部接收完发回来确实认就可以发送了) 当收到确认后发送窗口会向右移动到7位置,作为窗口的起始位置。 发送窗口,发送窗口有可能会收缩(因为接收窗口有可能因为接收缓存不 够而变小) 6. 2.超时重传时间的选择 采用一个根据RTT动态计算的时间,并不是直接采用一个固定的时间 RTT:发送一个报文段到收到对应的ACK所花费的时间RTO:超时重传时间 RTTs是一个加权平均RTT时间RTTd是RTTs偏差的加权平均RTO = RTTs + 4 * RTTd如果发生了重传,这次的RTT会让RTTs会变大,此时是不会用该RTT来 计算RTTs的 7. 3.确认 SACK是一个TCP报文首部的选项。当数据传输过程中,接收方可能会未按 顺收到局部报文段,此时序号告诉发送方从新传输这些报文段,SACK选项就是 用于告诉发送方需要传输那些报文段的 8. TCP传输连接管理 连接的三个阶段:建立连接、数据传输、连接释放在建立连接的过程中要 解决三个问题: 1)使每一方都知道对方的存在 2)协商一些参数 第10页共15页 3)能够运输实体资源 主动建立连接的一端叫客户端,被动等待连接建立的一方叫服务器 9. 连接建立(三次握手) 每次发送一个seq时,都会消耗一个序号,所以会发现在确认时,ack总等 于另一端请求的seq+1 8. 1.为何需要第三次握手? 假设没有第三次握手(即A再次确认)在很久很久以前,A发了一个连接 请求给B,但是网络滞留的原因,请求没有到达B,所以B也没有确认返回给 A,所以A右发送了一个连接请求给B,此时B收到了连接请求并返回了一个确 认给A,此时连端开始愉快的数据传输之旅。当传输结束时,分别断开连接, 各自干各自的活儿。但是过了一段时间,之间滞留在网络中的A发出的连接请 求到达了 B中,B以为A又要传输数据,便右回了一个确认给A,但是A并不 需要输出传输,也没有理会这个确认,而B却在傻傻等待A传输数据,这个就 会浪费B的资源。但是如果有第三次A确实认,A这个滞留的连接传给B, B返 回一个确认,但是A不想传输数据了,便没有回一个确认给B (第三次握 手),B没有收到该确认也不会等待A传输数据。 第11页共15页 9.连接释放(四次挥手) 第二次挥手:B回了一个确认,此时A与B的发送连接就断开了。 第三次挥手:因为TCP连接是全双工通信的,B还保存着一个对A大发送 连接,如果等到B也不需要发送数据给A时,B会发送一个连接给A, seq等于 一个大于或等于V的值(因为A与B断开发送连接到B与A断开发送连接期间 有可能B向A发送了数据,就是消耗序号)。 第四次挥手:当A收到B的连接时,要回一个响应给B,但是此时会有一 个2MSL长的等待时间,时间一过,就真正的断开与B的全部连接了。 9. 1.为什么需要2MSL的等待时间? MSL:最长报文寿命当A发送确认给A后,如果此时出现了一些状况(连 接被丢弃等),确认无法到达B中,B会重新发送一个连接给A,但是A就停 止了,B就一直等待(其实有一个保活时间)。如果有了这个等待时间,就算 A的ACK确认丧失了,B也会再从新发送一个连接给A, A接收到该连接后,会 从新计算等待时间。A会再确认一次 第12页共15页 10.应用层 10. 1. 协议特点: 支持客户端/服务器模式 简单快速 灵活 无连接,在完成一次请求获得响应后就会断开 无状态,没有记忆的,请求完一次后,就结束了,后面如果要再获得数据 必须从新请求 请求报文的结构 请求头部:用于设置请求的的一些参数如:ContentType请求空行:就算请 求数据为空,都要有空行,表示请求首部的结束 从浏览器地址栏键入URL,回车后会尽力的流程: DNS解析 TCP连接 发送 请求 服务器处理请求,并返回 报文 浏览器解析渲染页面 连接结束 GET请求与POST请求的区别 报文层面:GET请求信息放在URL中,POST放在报文体中数据库层 面:GET符合嘉等性和平安性,POST不符合其他层面:GET可以被缓存、储 存,而POST不行 Cookie 和 Session 的区别 第13页共15页 为什么会有这两种技术? 在使用一些需要登录的网站时,每次访问,都会需要验证个人信息,即登 录。这样做比拟繁琐,能否将个人的账号和密码存起来,访问的时候直接用存 取来的个人信息进行验证呢?解决这个问题的就是Cookie和Session Cookie:通过客户端(浏览器)来缓存个人信息。当用户第一次登录时, 服务器会将个人信息放在了响应中,浏览器接收到响应时候会将个人信息以 Cookie的形式访问浏览器中保存起来,在下一次访问服务器的时候会带上该 Cookie, Cookie中有个人信息,服务器能解析出来,所以不同再次登录验证 To (不够平安,对服务器的开销小) Q Web Client RequMt ② Rmpoom ■ Set-Cookie ③ Request ♦ Cookte Web Server ④ RMponst Session通过服务端来缓存信息,根据请求中是否包含Session id的字段, 如果不存在那么创立一个,并返回给浏览器缓存起来。如果存在那么通过该Session id在服务器存储中获得对应的Session信息,直接验证。(平安,服务器的开销 变大) Session的实现方式 ,使用Cookie来实现 ,使用URL回写来实现 第14页共15页 11. 与 S 的区别: 1、 S需要到CA申请证书, 不需要2、 S密文传输、 明 文传输3、连接方式不同, S默认使用443端口, 使用80端口 4、 S = +加密+认证+完整性保护,较 平安 其实也不一定就平安,原因是用户不会再访问时候加上 :〃或 s://, 浏览器就默认会加上 ://,然后通过转发的方式转成 s://这个过程 就有可能会被劫持了。 此时会用到一个技术 HSTS( Strict Transort Security) 第15页共15页 1. OSI七层协议 1.1. 物理层 很久很久以前,那时候还没有现在的外星人超级电脑,或者华为的P30。 比拟淘气的小明想要把自己机器上写好的一些个人游戏心得(如何玩好王者农 药)发给小红(校花),希望博得芳心。小明个人比拟勤,游戏总结心得总结 的比拟详细(大概有100M)。但是到底怎么才能从自己的机器上传给小红的 机器呢,进过一番打听,他发现远在太平洋另一端的科学家已经创造了一种技 术 物理层,专门用来解决小明这种单身狗问题。该层主要定义物理设备标准, 如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要 作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在 转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比 特。 他很兴奋,通过一个月的努力终于搭建起了这个物理层。 1.2. 数据链路层: 然而上天却好像和小明开了一个玩笑,楼下的小润发超市的网线、光纤最 近卖光了,但是这个物理层传输数据只能通过网线传输。到底怎么办。 此时,他体内的雄性激素促使着他的大脑以光速运转。终于他饿了,无奈 得走去学校饭堂三楼吃麻辣烫。此时听到隔壁坐着的那位王叔叔(老王)说, 科学家已经创造了一种技术可以通过无线电来传输。What?这不是完美解决了 自己的困扰吗。小明连忙对隔壁老王说谢谢,老王留下了幸福的泪水! 右通过一番努力查资料,小明发现:这种技术可以通过电线我能发数据 流,也可以通过其它介质来传输。然后还要保证了传输过去的比特流是正确 的,有纠错功能。定义了如何让格式化数据以进行传输,以及如何让控制对物 理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。 小明把层技术称为:数据链路层 1.3. 网络层: 由于小明家离小红家比拟远,无线电信号无法传输到哪里,但是这完全难 不到小明。他通过在离小红家的路上搭建了多个节点(路由器,交换机),用 第2页共15页 于信号的传输。但是由于他有时候被雄性激素冲昏了头脑,搭建的信号节点有 点乱,而且很多。那他又想用最短的路径来传输怎么办呢?在小明沮丧走回家 的时候已深夜,他看见今天看到的那位王叔叔匆匆的从自己家走出来,他连忙 拉住王叔叔,向他诉说自己的烦恼,希望王叔叔能给自己一些帮助。当小明说 完后,王叔叔从紧张变为和蔼,和小明说:其实已经有人创造了网络层。即路 由器,交换机那些具有寻址功能的设备所实现的功能。这一层定义的是IP地 址,通过IP地址寻址。所以产生了 IP协议。该层能选择最正确路径,这就是路由 要做的事。 1. 4.传输层 为了趁热打铁,小明通宵查资料来学习相关信息,并且简单搭建好网络 层,开始传输数据,趁着传输过程好好睡一觉。当他起来的时候,噩梦才刚刚 开始,因为他传输的数据太大(100M)只传输了一局部,而且断断续续的,有 一局部数据根本传不出去。那怎么办? “加一层传输层! ”:王叔叔在楼下大声喊着,“资料在你妈妈的床头 柜”,王叔叔继续说。小明连忙找到资料,上面写着:“ 发正确的发比特流数据到另一台计算机了,但是当我发大量数据时候,可 能需要好长时间,例如一个视频格式的,网络会中断好屡次(事实上,即使有 了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别 的)。 那么,我还须要保证传输大量文件时的准确性。于是,我要对发出去的数 据进行封装。就像发快递一样,一个个地发。 例如TCP,是用于发大量数据的,我发了 1万个包出去,另一台电脑就要 告诉我是否接受到了 1万个包,如果缺了 3个包,就告诉我是第1001, 234, 8888个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。 例如UDP,是用于发送少量数据的。我发20个包出去,一般不会丢包,所 以,我不管你收到多少个。在多人互动游戏,也经常用UDP协议,因为一般都 是简单的信息,而且有广播的需求。如果用TCP,效率就很低,因为它会不停 地告诉主机我收到了 20个包,或者我收到了 18个包,再发我两个!如果同时 有1万台计算机都这样做,那么用TCP反而会降低效率,还不如用UDP,主机 发出去就算了,丢几个包你就卡一下,算了,下次再发包你再更新。 第3页共15页 TCP协议是会绑定IP和端口的协议,下面会介绍IP协议。” 通过如此这般的操作,他!小明同学终于把自己100M的游戏心得发送给 了小红。 1. 5.会话层 (解除与建立与别的接口的联系) 然而,小红根本不玩游戏。得知这个消息后,小明楞逼了。但是他没有放 弃,而是把自己猜到小红喜欢的信息都发给他,但是小明每发一次,难道我每 次都要调用TCP去打包,然后调用IP协议去找路由,这一来一回就是一天,那 怎么办呢? 他又翻了翻王叔叔的笔记本资料,写着:会话层可以帮助我们建立和管理 应用程序之间的通信,封装了调用TCP去打包,然后调用IP协议去找路由等操 作,如此一来,他只需要十几二十分钟就能够成功搭建好传输数据的机器。 1. 6.表示层 (数据格式化,代码转换,数据加密) 有一次,小明传了一份数据,是关于如何选购化妆品的文章,小红对此非 常感兴趣,但是当小红想用自己的window开该文件时发现根本无法翻开,后 来小红在下课的时候和小明说自己无法翻开这个文件,小明想自己用Linux系 统明明完整地发送给了小红啊,那就奇怪了,但是出于耍帅,小明只是轻轻地 说“我放学后再发你一份! ”。 这时虽然小明不知道是出了什么问题,但是他坚信老王叔叔的资料笔记会 有答案的。 果然!上清清楚楚的写着:“现在我能保证应用程序自动收发包和寻址 了。但是我要用Linux给window发包,两个系统语法不一致,就像安装包一 样,exe是不能在linux下用的,shell在window下也是不能直接运行的。于是 需要表示层(presentation),帮我们解决不同系统之间的通信语法问题。” 小明立即用了一个通宵手动搭好了表示层,传输了一份完美的文件给小 红。 1.7. 应用层 (文件传输,电子邮件,文件服务,虚拟终端) 第4页共15页 官方OSI说明图 TCP/IP 第7层应用层 UNIX网恪疆多 常观使用UDP防 侬的应用Z8照务 各种应用程序协议,如 . FTP, SMTP. POP3。 H文本作■怫议 FTP 文件作情伤仪 SMTP 司学邮件传・悔过 TELNET TCP/IPKM仿真蹄仪 POP3 邮局仿谟第3版 Fingor 用户信息协议 NNTP 网络新闻传・协议 IMAP4 因椅网信息访问协议笫凶版 常见使用TCP梆议的应用层服务 LPR UNIXj&H 打印协议 Rwho UNIXiSH Who协议 Rcxcc uNixj&a 执行协谡 BOOTP 引导侨议 DHCP ◎R主机 配・仿设 NTFHP 第6层表示层 信息的语法语义以及 它们的关联,如加密 解密、转换翻译、压 缩解压缩. 第5层会话层 不同机器上的用户之 间建立及管理会话。 第4层传输层 接受上一层的数据,在必 要的时候把数据进行分 . 割,并将这些数据交给网— 络层,且保证这些数据段/J 有效到达对端。 TCP传■控制的议 HP网培胺务 VFRP I NcTBIOS IPX VINES NETRPC RSH Login UNIXi&WVM^iK UNlXflffSh«ll»iX ROA HP RFA HP 网络文件 «WM« 垢程文件访 府・怫放|仿向待议 ISO开发做 X>Wlndow X-WIndow TFTP ■ ・文件 传安协议 S- 平安图文本 ft■博愎 NBSSN NetBIOS 曾通 ・务防仪 van Jacoteon atrrcpwA OAP 日录访例 协愎 CMOT IMFTCPrtPW CM»P价慢 MTTCP±± 的)C25协议 NTP 网络射倒 GDP 用关发现除仪 XDP Romo<e Proc«M Conwn. 发♦级裳水 协议 r ssl TLS 平安套接字 住愉层 【展饰议 平安协议J 平安仿议 目录访问协议 LDAP KlttH 录访问出议 DSI IP NETBIOS SMB NetBIOS 4 ISO-TP SSP MSRPC UDP用户数据报称议 同时使用TCP和 UDP责议的应用屉IV务 SOCKS 平安套按字 FANP 渣■性通知 仿设 SLP ・务定位协议 MSN 网络膻务 Radius 返程用户拨号 队的愎 DNS 域名系统 ■ ― NFS 冏络文件 系靖饰议 R-STAT SUNac« 状态・情 PMAP SUN 端口 映奥烟 NIS SUN网塔信 亳系统粉说 4SMSUNM 情找态 满的议 Mount RUDP 叼靠的用户 平安怫议 ▲nA 路由力放 由选择。 3 地址解析冷议 Cite。物议 第2层数据链路层 2 IEEE 802.2 IP/IPvS 位第6版 IGMP 管理侨议 DCAP 户访问怖议 MPLS 多的效标 釜交挨怫议 XTP 压・府 输济议 VRRP 虚拟16由 费冗余科议 ICMP 互联网控鬟 信总协it RARP 他闰出t 解析协议 IGRP 内叫美・ 由论议 PtM-SM 曦星模式独 立曲青协议 ICMPv6 互联网控制 信息帆派 «6tt OSPF 开放■台 径优先协议 ARP 地址・折 ESP 平安封装有 效mQ怫收 DVMRP S*扃矢・忸 播路由协议 MOSPF 皿*弁放■烟 路径优先的议 PGM 实解通用悒■ 怫议 IE-IRGP 增量内部降关路 由贵择物议 EGP 第MR关的议 RIPng for IPv6 MI8由信息除健 AH 认证头惨媒 ATMP 凑入 的议 NHRP 下一缺解析协议 PPTP 点对点破道济设 GGP 网关到网关的读 L2F 第二•”发出坡 IPInIP SLE 布什建”11■林议 P1M-DM 密集模式独 立组推协议 SLIP L2TP 第二层隧道汾议 CDP 思科发 现物议 CGMP 思科幡 第3层网络层 控制子网的运行,如逻 辑编址、分组传除、路 物理寻址,同时将原 始比特流转变为邃辑 恃输线路. 第1层物理层 机械、电子、定时接 口通信信道上的原始 比特流传谕. Ethernet v.2 Internetwork RSVP 资源州耽该 路由信息协议第 2tf 2. TCP/IP 协议 TCP/IP协议是由七层模型简化成四层而来。(TPC/IP协议其实泛指了四层 模型中的全部协议,区别开TCP协议,IP协议) 第5页共15页 七层有底向上分别是:物理层、数据链路层、网络层、传输层、会话层、 表示层、应用层。 简化后的四层分别是:主机到网络层(比特)、网络层(数据帧)、传输 层(数据包)、应用层(数据段)。 每一层对于上一层来讲是透明的,上层只需要使用下层提供的接口,并不 关心下层是如何实现的。 与OSI七层协议的比照: OSI参考模型 TCP/IP>% 模型 数据段 数据包 数据帧 比特 3. .传输层: 网络层是主机与主机之间的通讯,而传输层那么是进程之间的通讯。 为何要有传输层?应为进程是资源分配的基本单位,计算机之间的信息传 输也只是一台计算机的进程传输到另外一台计算机的进程中。 一台计算机如何找到另外一台计算机呢?那就是通过IP协议来完成的(复 用,多个进程都可以把信息通过传输层到IP层,再传输到另外一台计算机 中)。 那如何找到另外一台计算机的进程(pid) ?那就是用端口(分用,到达另 外一台计算机后还要通过端口号找到对应进程)。 第6页共15页 4. 传输层主要有两种协议:UDP和TCP 5. 1. UDP协议特点: 无连接,传输数据时不需要建立连接,减小开销 尽最大努力交付,不确保可靠交付 面向报文 没有拥塞控制、确保信息实时性 支持一对一,一对多,多对一,多对多 首部开销小,只有8个字节 UDP的首部格式(UDP头): 源端口,发送方的端口 目标端口,接收方的端口 长度,首部长度+用户数据包的长度(可以没有数据包,所用最小值为 8) 检验和,检查UDP用户数据传输中是否与错,有错就丢弃(检查首部长度 +用户数据包) | 源端堵口 | 目的地端口 | 用户数据包长度 检查和 | 数据 ] 小I 4. 2. TCP 协议 A、特点: 面向连接的协议。数据传输之前都要建立连接(三次挥手),数据传输结 束都要释放连接(四次挥手) 一条TCP连接只能有两个端点,端点是socket (结构IP地址:端口号), 并非主机或进程。 可靠交付 全双工通信(一端既可以做发送方也可以做接收方) 面向字节流 第7页共15页 B、为何TCP是可靠的呢?其实TCP是依赖停止 等待协议和连续ARQ协 议+滑动窗口协议才到达可靠的目的a、等待协议 特点:资源利用率非常低 工作原理:客户发送一次数据到服务端,必须等到服务端响应后才发第二 次数据,中间的等待时间RTT占了大局部时间,中间如果出现过失(超时或确 认丧失)都需要从新传输。 b、连续ARQ协议 连续ARQ协议工作原理:维持一个发送窗口(记录了当前可以发送的数据 包数量n),在窗口内的数据都可以连续发送出去,服务器只在接收完一个发 送窗口的数据后才回响应(累计确认),发送端接收到响应就把发送窗口移动 n位,开始新一轮数据发送。 以上只是简单了解TCP协议的发送流程,如果要清楚发送细节,必须知道 TCP报文首部 5. TCP报文段的首部格式 虽然说TCP是面向字节流的,但是TCP传输的数据单元却是报文段,报文 段由首部和数据两局部组成,如图: 16位源端口号 16位 的端口号 32位序号 4位 首部 长度 保存(6 位) 16位窗口大小 16位校验和 16位紧急指针 数据 1 .源端口和目标端口(各占两字节) 2 .序号(占4字节):TCP连接传输的数据每一个字节都有一个序号,而一 个报文段可能会有多个字节的数据,这个序号指的是TCP报文段中起始的序 号,下一个报文段的序号那么是该序号加上报文数据长度(三次握手和四次挥手 时说的SYN或ACK会消耗一个序号就是指该序号) 第8页共15页 3 .确认号(占4字节):因为一次数据传输会分成多个报文段,接收方接 收完一次报文段后如果要发送确认(有可能不用确认,因为是接收完发送窗口 的报文段才确认的),那么会携带一个确认号,表示接收方想要接收的下一个报 文的序号 4 .数据偏移(占4字位):数据局部的起始位置离报文段起始位置的距 离,就是报文首部的长度,单位是4字节,所以4位能表示最大值是十进制的 15,就是15x4字节=60字节,TCP报文首部最大长度为60字节 5 .保存(占6位):未被使用,全置为0 6 .紧急URG:当URG=1时紧急数据才有效。注意,这里URG并不是紧急数 据,只是一个标志,标志着紧急数据是否有效 7 .确认ACK:当ACK=1时确认号才有效,当建立连接后全部传输的报文都 要把ACK设置为1 8 .推送PSH:接收方机器会有一个接收,当接收缓存慢了才回把接收到的 数据交付到接收应用进程中,而如果发送端把报文的PSH设为1,接收方接收 到该报文会立即交付到应用的进程中 9 .复位RST:两个作用,1、当RST=1时,表示TCP连接中出现严重过失, 必须释放连接,然后重新建立运输连接。2、当RST=1时,拒绝一个非法的报文 段或拒绝翻开一个连接。 10 .同步SYN:用于同步序号(告诉另外一方,他们之间从该序号开始传输 报文段),当SYN=l,ACK=0表示这时一个连接请求报文。 11 .终止FIN:用于释放一个连接。当FIN=1时,说明此报文的发送方的数 据已经发送完毕,并要求释放运输连接。 12 .窗口(占2字节),是一个接收窗口,接收方允许发送方发送的数据量 13 .检验和(占2字节):检验接收过来的报文段(报文首部和用户数据) 是否有误 14 .紧急指针(占2字节):当URG=1时才有效,指出紧急数据未尾位置 (开始位置是整个报文段中用户数据的开头) 15 .选项,长度可变,最长40字节 那到底TCP是如何实现可靠传输的呢? 第9页共15页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 网络/通信

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服