![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 53
你板子冒烟了
这个作者很懒,什么都没留下…
展开
-
计网实验--wireshark
三个窗口:第一个窗口显示抓到的包的列表。第二个窗口是对选中的包的解析,这个解析信息在包中数据是看不到的。第三个窗口就是这个包的具体内容。wireshark 可以在捕获前筛选,也可以在捕获完成后过滤。在上面绿色的筛选栏中输入 tcp 回车 即可筛选出所有采用 tcp协议 或者 上层协议是 tcp 的包。输入 arp 回车 即可筛选出采用 arp 协议的包。输入 空格 回车 即可显示所有的包的列表。过滤器的技巧很多。如:1、过滤特定源地址的包,在过滤栏中输入:ip.src==172.原创 2021-06-05 20:41:27 · 3473 阅读 · 3 评论 -
6.3 远程终端协议telnet
telnet简单的远程终端协议。用户通过telnet就可以通过tcp连接远程登陆到另一台主机上,telnet也能将用户的击键传到远地主机,同时也能将远地主机的输出通过tcp连接返回到用户屏幕。这种服务是透明的,使用户感觉好像键盘和显示器是直接连在远地主机上。使用CS方式。本地主机运行...原创 2021-05-15 15:04:45 · 451 阅读 · 0 评论 -
6.2.3 简单文件传送协议TFTP
TFTP是一种轻量级,易于实现的文件传输协议。也是使用CS方式。在4层使用UDP,不保证可靠传输,因此TFTP需要有自己的差错改正措施。TFTP只能进行文件传输不能进行交互,不能列目录,不能对用户进行身份鉴别。TFTP使用的端口号是69。TFTP的主要特点1、每次传送额数据报文中有512bytes数据,最后一次可以不足512(或者是0),作为结束传输的标志。2、数据报文按序编号,从1开始。3、支持ASCII码或二进制传送。4、可以读写文件。5、首部简单。应用层TFTP的工作..原创 2021-05-15 14:59:31 · 264 阅读 · 0 评论 -
6.2.2 FTP的基本工作原理
FTP只提供文件传送的一些基本服务。减少或者消除在不同OS下处理文件的不兼容性。FTP也是采用CS方式一个FTP服务器进程可以同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程(负责接收新的请求);若干个从属进程(负责处理单个请求)主进程的工作步骤1、打开熟知端口21,使客户进程能够连接上。2、等待客户进程发出连接请求。3、启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,从属进程...原创 2021-05-15 14:06:37 · 368 阅读 · 0 评论 -
6.2.1 FTP概述
FTP文件传送协议File Transfer Protocol互联网上使用最广泛的文件传送协议。FTP提供交互式访问允许客户指明文件的类型与格式(如指明是否使用ASCII码)允许文件的存取权限(如访问文件的用户必须经过授权,并输入有效的口令)屏蔽了各种OS的细节,不同OS的计算机能够通过FTP传送文件FTP基于4层的TCP。是文件共享协议中的一类,即复制整个文件。若要存取一个文件,就必先获得一个本地的文件副本。若要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传..原创 2021-05-15 13:23:31 · 67 阅读 · 0 评论 -
6.2 文件传送协议
目录6.2.1 FTP概述6.2.2 FTP的基本工作原理6.2.3 简单文件传送协议TFTP原创 2021-05-15 13:11:58 · 61 阅读 · 0 评论 -
6.1.3 域名服务器
域名服务器分布在世界各地。理论上可以让每一级的域名都有一个相对应的域名服务器,是所有的域名服务器构成类似下图的域名服务器树的结构,但是如此会使域名服务器的数量太多,降低域名系统的运行效率。因此DNS采用划分区的方法来解决此问题。区一个域名服务器负责管辖的范围。各单位根据具体情况来划分区。一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区的所有主机域名到ip地址的映射。DNS服务器的管辖范围不是以域为单位,而是以区为单位。区小于等于域。树状..原创 2021-05-15 08:56:54 · 301 阅读 · 1 评论 -
6.1.2 互联网的域名结构
如今互联网采用了层次树状结构的命名方法,任何连接在互联网上的主机或者路由器,都有一个唯一的层次结构的名字,即域名。域可以划分为子域,子域还可继续划分为子域的子域。如此形成了顶级域,二级域,三级域等等。每个域名都由标号序列组成,各标号之间用点隔开。标号就是每一级域名...原创 2021-05-14 22:39:55 · 3591 阅读 · 0 评论 -
6.1.1 域名系统DNS概述
域名系统DNSDomain Name System用来把便于用户使用的机器名字转换为ip地址。定长的ip地址便于主机使用,但不利于用户记忆。机器/主机名字便于用户使用。许多应用层软件直接使用域名系统,虽然计算机用户只是间接而不是直接使用域名系统,但是DNS却为互联网的各种网络应用提供核心服务。互联网的域名系统DNS是一个联机分布式数据库系统,采用CS方式。DNS使大多数名字都在本地进行解析,少量解析需要在互联网上通信,因此DNS的效率很高。由于DNS是分布式系统,即使单个计算机出了..原创 2021-05-14 21:55:39 · 216 阅读 · 0 评论 -
6.1 域名系统DNS
目录6.1.1 域名系统概述6.1.2 互联网的域名结构6.1.3 域名服务器原创 2021-05-14 21:39:26 · 152 阅读 · 0 评论 -
第6章 应用层
应用层的协议很多,每一个应用层的协议都是为了解决某一类应用问题。用户的需求种类多,因此应用层的协议也很多目录6.1 域名系统DNS6.2 文件传送协议6.3 远程终端协议 TELNET6.4 万维网www6.5 电子邮件6.6 动态主机配置协议DHCP6.7 简单网络管理协议6.8 应用进程的跨网络通信6.9 P2P应用...原创 2021-05-14 21:30:44 · 102 阅读 · 0 评论 -
5.9.3 TCP的有限状态机
如下图粗实线箭头表示对客户进程的正常变迁。粗虚线箭头表示对服务器进程的正常变迁。另一种细线箭头表示异常变迁。TCP总结1、建立连接:3次握手2、发送数据:窗口(序号,发送+接收窗口),确认机制,流量控制,拥塞控制(发现什么时候拥塞,让拥塞来的越晚越好),超时重传…3、连接释放:四次握手...原创 2021-05-04 17:54:48 · 220 阅读 · 0 评论 -
5.9.2 TCP的连接释放
若通信完不释放连接,连接就会一直存在,占用资源。TCP的连接释放是一个四报文握手。传输传输结束后,通信双方都可以释放连接。现在A和B都处于ESTABLISHED状态,如下图。A的应用进程先向其TCP发出连接释放报文段,并停止发送数据,主动关闭TCP连接。① A把连接释放报文段首部的终止控制位FIN置1,其序号seq=u,等于前面已传送过的数据的最后一个字节的序号加1。此时A进入了FIN-WAIT-1(终止等待1)状态,等待B的确认。(注意FIN报文段即使不携带数据,也会消耗掉一个序号)..原创 2021-05-04 17:51:06 · 220 阅读 · 0 评论 -
5.9.1 TCP的连接建立
TCP建立连接的过程叫作握手握手需要在客户和服务器之间交换3个TCP报文段。如上图,假定主机A运行的是TCP客户程序,而B运行TCP服务器程序。起初两端的TCP进程都处于 CLOSED(关闭)状态。B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求。然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求;若有则作出响应。A的TCP客户进程也是首先创建传输控制模块TCB,① 然后在打算建立TCP连接时,向B发出连接请求报文段;此报文段首部中的同步位SYN=1.原创 2021-05-04 16:27:49 · 214 阅读 · 0 评论 -
5.9 TCP的运输连接管理
TCP是面向连接的协议。运输连接是用来传送TCP报文的。运输链接的建立和释放是每一次面向连接的通信中必不可少的过程。运输连接的三个阶段1、连接建立2、数据传送3、连接释放TCP连接的建立采用 CS 方式。主动发起连接建立的应用进程叫作客户。被动等待连接建立的应用进程叫作服务器。目录5.9.1 TCP的连接建立5.9.2 TCP的连接释放5.9.3 TCP的有限状态机...原创 2021-05-04 15:36:38 · 121 阅读 · 0 评论 -
5.8.3 主动队列AQM
路由器的分组丢弃策略路由器的队列通常都是按照FIFO的规则处理到来的分组。由于队列长度有限,因此当队列已满时,以后再到达的所有分组(若能继续排队,这些分组都将排在队列的尾部)都将被丢弃。此为尾部丢弃策略。尾部丢弃策略造成的后果路由器的尾部丢弃往往会导致一连串分组的丢失,引起发送方超时重传,是TCP进入拥塞控制的慢开始状态,结果使TCP连接的发送方把数据发送速率降低到很小的数值。网络中通常有很多TCP连接,发生在路由器尾部的丢弃会使多条TCP连接在同一时间进入到慢开始状态。如此全网的通信..原创 2021-05-04 14:45:29 · 510 阅读 · 0 评论 -
5.8.2 TCP的拥塞控制方法
判断网络拥塞的依据1、重传定时器超时(此时已经发生了拥塞)。2、收到3个对同一报文段的重复确认(说明个别报文段在网络中丢失,在接收到后面的分组时发送的重复的确认,于是可能会出现拥塞,但实际上可能还未发生即快要发生了,可以由此提前采取控制措施避免拥塞);TCP拥塞控制方法有四种:1、慢开始2、拥塞避免3、快重传4、快回复下面讨论的拥塞控制是基于窗口的拥塞控制。发送方维持一个叫作拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态变化。发送方让自己的发送窗口..原创 2021-05-04 09:32:11 · 576 阅读 · 1 评论 -
5.8.1 拥塞控制的一般原理
网络的资源计算机网络中的链路容量(即带宽),交换结点中的缓存和处理机等拥塞若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能会变坏。拥塞的条件:∑对资源的需求 > 可用资源任意增加一些资源,不能解决拥塞问题,可能使网络的性能更坏。网络拥塞往往是由许多因素引起的。如:某个结点缓存的容量太小了,到达该结点的分组因无存储空间暂存而不得不被丢弃。现在设想将该结点缓存的容量扩展到非常大,于是凡到达该结点的分组均可在结点的缓存队列中排队,不受任何限制。但由于输出..原创 2021-05-03 21:20:59 · 584 阅读 · 0 评论 -
5.8 TCP的拥塞控制
目录5.8.1 拥塞控制的一般原理5.8.2 TCP的拥塞控制方法5.8.3 主动队列管理AQM原创 2021-05-03 16:38:51 · 92 阅读 · 0 评论 -
5.7.2 TCP的传输效率
应用进程把数据传送到TCP的发送缓存后,剩下的发送任务就由TCP来控制。TCP有3种机制来控制TCP报文段的发送时机:1、TCP维持一个变量,等于最大报文段长度MSS。只要缓存中的数据达到MSS字节,就组装成一个TCP报文段发送出去。2、由发送方的应用进程指明要求发送报文段,即TCP支持的推送(PUSH)操作。3、发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(长度不能超过MSS)发送出去。如何控制TCP发送报文段的时机仍然是一个较为复杂的问题。如:一个用户使用一条..原创 2021-05-03 15:52:55 · 2556 阅读 · 0 评论 -
5.7.1 利用滑动窗口实现流量控制
若发送方把数据发送的过快,接收方可能来不及接受,造成数据丢失。流量控制让发送方的发送速率不要太快,要让接收方来的及接收。如何利用滑动窗口来实现对发送方的流量控制发送方的发送窗口不能超过接收方给出的接收窗口的数值。TCP的窗口单位是字节,不是报文段。A向B发送数据。设每一个报文段是100字节长。数据报文段序号的初始值设为1。大写ACK表示确认位(连接建立后所有传送的报文段都必须把ACK置1),小写ack表示确认字段的值。连接建立时,B告诉A:我的接收窗口 rwnd = 400。..原创 2021-05-03 14:32:14 · 790 阅读 · 0 评论 -
5.7 TCP的流量控制
目录5.7.1 利用滑动窗口实现流量控制5.7.2 TCP的传输效率原创 2021-05-03 13:48:22 · 93 阅读 · 0 评论 -
5.6.3 选择确认SACK
若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据;通过选择确认,可以只传送缺少的数据而不重传已经正确到达接受方的数据。若需要使用选择确认SACK,在建立TCP连接时由双方进行协商。在首部的可变选项中加上“允许SACK”的选项。以后再TCP报文段的首部中都会有这个SACK选项,一边报告收到的不连续的字节快的边界。由于首部选项的长度最多只有40字节,而指明一个边界需要4字节(因为序号有32位,需要4字节),因此在选项中最多只能指明4个字节块的边界信息(8个边界);还要预留两个字节..原创 2021-05-03 13:28:59 · 1017 阅读 · 0 评论 -
5.6.2 超时重传时间的选择
前面讲过,TCP的发送方在规定的时间内未收到确认就要重传已发送的报文段。重传时间的选择十分复杂。若把超时重传时间设置的太短,会引起不必要的重传并增大网络负担;若把超时重传时间设置的太长,会使网络的空闲时间增大,降低传输效率。TCP采用如下的一种自适应算法来计算超时重传时间...原创 2021-05-03 12:49:29 · 343 阅读 · 0 评论 -
5.6.1 以字节为单位的滑动窗口
滑动窗口的工作原理以字节为单位。如下图,假定A收到了B发来的确认报文段:其中窗口是20字节,确认号是31(表明B期望收到的下一个序号是31,30及之前的都已经收到了)A根据B发来的确认报文段中的这两个数据,构造出了自己的发送窗口在没有收到B的确认的情况下,A可以连续把窗口内的数据都发送出去。凡是发送过的数据,在未收到对方的确认之前都必须暂时保留,以便在超时重传时使用。发送窗口里面的序号表示允许发送的序号。窗口越大,发送方就可以在收到对方确认之前连续发送更多的数据,因而获得更高的传输效率。原创 2021-05-03 10:55:00 · 1128 阅读 · 1 评论 -
5.6 TCP可靠传输的实现
本节介绍如何实现TCP的可靠传输目录5.6.1 以字节为单位的滑动窗口5.6.2 超时重传时间选择5.6.3 选择确认 SACK原创 2021-05-03 07:30:48 · 152 阅读 · 0 评论 -
5.5 TCP报文段的首部格式
TCP虽然是面向字节流的,但是TCP传送的数据单元是报文段一个TCP报文段分为首部和数据两部分。TCP的全部功能都体现在它首部中各字段的作用。TCP报文段首部的前20个字节是固定的,后面有 4n 个字节是根据需要而增设的选项。首部最小长度是20字节,要做到4字节对齐,可以采用填充。1、源端口和目的端口各占两字节,用来实现TCP的分用功能。2、序号占4字节。序号从0增加到232 - 1后,下一个序号又回到0。TCP是面向字节流的。一个TCP连接中传送的字节流中的每一个..原创 2021-05-02 16:39:29 · 494 阅读 · 0 评论 -
5.4.2 连续ARQ协议
滑动窗口协议比较复杂,但是TCP的精髓本节给出连续ARQ协议的基本概念,细节见5.6发送窗口窗口是指缓存中的一块区域,发送窗口是指要发送出去的这块存储区域。由发送方维持。如下图例(a),位于发送窗口内的五个分组都可以连续发送出去,不需要等待接收方的确认一个一个的发送,如此提高信道利用率。图中的时间坐标:向前是指向时间增大的方向;向后是指向时间减少的方向。分组发送是按照分组序号从小到大发送的。发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。上图(b)表示发送方收到了对第1..原创 2021-05-02 14:02:00 · 2467 阅读 · 0 评论 -
5.4.1 停止等待协议
全双工通信的双方既是发送方也是接收方。但本文仅考虑A发送数据而B接收数据的情况停止等待每发送完一个分组就停止发送,等待对方的确认。收到确认后发送方再发送下一个分组。1、无差错情况A发送分组M1,发完就暂停发送,等待B的确认。B收到了M1就向A发送确认。A收到了对M1的确认后就再发送下一个分组M2。同样A在收到B对M2的确认后再发送M3。2、出现差错B收到M1时检测出了差错,则丢弃M1,其它什么都不做(不通知A收到有差错的分组)。或者M1在传输过程中丢失了,B不知道,什..原创 2021-05-02 13:16:30 · 1908 阅读 · 0 评论 -
5.4 可靠传输的工作原理
目录5.4.1 停止等待协议5.4.2 连续ARQ协议原创 2021-05-02 10:44:45 · 115 阅读 · 0 评论 -
5.3.2 TCP的连接
面向连接TCP所有的功能都是基于一个抽象的连接。TCP连接的端点套接字(socket):端口号拼接到IP地址即构成了套接字套接字的表示方法:点分十进制的IP地址后面写上端口号,中间使用冒号或逗号隔开。套接字socket = (IP地址:端口号)。如(192.3.4.5:80)每一个TCP连接唯一地被通信两端的两个端点(两个套接字)所确定。即:TCP连接 = {socket1,socket2} = {(IP1:port1),(IP2:port2)}TCP连接的端点是套接字,同一个I..原创 2021-05-02 10:34:37 · 238 阅读 · 0 评论 -
5.3.1 TCP 最主要的特点
TCP 比较复杂TCP 主要特点1、面向连接使用TCP之前,必须要先建立连接;数据传送完毕,必须释放已经建立的TCP连接。类似于打电话:通话前要先拨号建立连接,通话结束后要挂机释放连接。2、每一个TCP连接只能有两个端点,是点对点的连接。3、提供可靠交付的服务通过TCP连接传送的数据,不出错不丢失不重复。4、全双工通信TCP通信双方的应用进程在任何时候都能发送数据。TCP两端都设有发送缓存和接收缓存,用于临时存放双向通信的数据。发送时,应用进程把数据传送给TCP的发送缓存后,就可以做.原创 2021-05-02 10:06:53 · 528 阅读 · 0 评论 -
5.3 传输控制协议TCP概述
目录5.3.1 TCP最主要的特点5.3.2 TCP的连接原创 2021-05-02 09:34:00 · 144 阅读 · 0 评论 -
5.2.2 UDP的首部格式
UDP用户数据报有两个字段首部字段和数据字段首部字段由4个字段组成,每个字段长度2字节,共有8个字节1、源端口号:需要对方回信时选用,不需要可全02、目的端口号:在终点交付报文时必须使用3、长度:UDP用户数据报的长度,首部加上数据的长度,最小值是8(即仅含首部)4、检验和:检验UDP用户数据报整体是否出错,有错则丢弃伪首部UDP数据报在计算检验和时,需要在首部前加上12个字节的伪首部。UDP伪首部的内容:4字节源IP地址,4字节目的IP地址,加上4字节的参数(如下图)伪首..原创 2021-05-02 09:01:14 · 698 阅读 · 0 评论 -
5.2.1 UDP概述
UDP提供无连接、不可靠的服务,因此较简单。UDP只在IP的数据报服务上增加了很少的功能:复用和分用差错检测(ip分组检错只检首部,就像邮局送信,不回去检查信的内容是否正确,但UDP检测全部内容)UDP主要特点1、无连接:发送数据前不需要预先建立连接,数据发送完也不要释放连接。减少了开销和建立连接的时延。2、UDP不保证可靠交付:只是尽最大努力交付(其实最大努力交付也是靠下层IP,UDP首部短附加的功能少),主机不需要维持复杂的状态表。3、UDP是面向报文的:发送方的UDP对应用层交下来的报.原创 2021-05-02 07:39:59 · 228 阅读 · 0 评论 -
5.2 用户数据报协议UDP
目录5.2.1 UDP概述5.2.2 UDP的首部格式原创 2021-05-02 07:23:15 · 100 阅读 · 0 评论 -
5.1.3 运输层的端口
复用和分用复用:应用层所有的应用进程都可以通过运输层再传送到网络层分用:运输层从网络层收到发送给应用进程的数据后,必须分别交付指明的各应用进程因此需要给应用层的每个进程赋予一个标志,使得运输层得以区分它们单个计算机中的进程使用进程标识符(一个不大的整数)来标志。但互联网中主机可能使用不同的OS,可能使用不同格式的进程标识符。若要使不同OS的计算机上的进程能进行通信,就需要使用统一的方法(与OS种类无关)来标识应用进程。在运输层使用协议端口号(即端口port)。这种在协议栈层间的抽象..原创 2021-05-01 21:24:47 · 1696 阅读 · 0 评论 -
5.1.2 运输层的两个重要协议
用户数据报协议 UDP传输控制协议 TCP4层两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元(TPDUTPDU)。TCP协议的TPDU是TCP报文段UDP协议的TPDU是UDP用户数据报UDP和TCP的对比UDPTCP类似于写信类似于打电话UDP用户数据报TCP报文段UDP提供的是无连接、不可靠的服务。TCP提供的是面向连接、可靠的服务。传送数据前不需要预先建立连接。(无连接)传送数据前必须先建立连接,数据传送完要释放连..原创 2021-05-01 20:17:08 · 1550 阅读 · 0 评论 -
5.1.1 进程之间的通信
运输层使用网络层提供的服务,向应用层提供服务。网络通信中,只有主机的协议栈才有运输层,路由器只有下三层(转发分组只需要使用下三层的功能)。网络层负责主机之间提供逻辑通信(3层到3层)运输层负责应用进程间的通信(4层到4层),不一样的进程可通过端口对应到传输层上的不同协议来完成不同工作。虚拟的逻辑信道运输层向高层用户屏蔽了下层的细节,使得应用进程看见的就是好像在两个运输层实体之间的一条端到端的逻辑通信信道,这条逻辑通信信道实际不存在。通信的实体是两台主机中的进程:一台..原创 2021-05-01 13:23:54 · 825 阅读 · 1 评论 -
第 5 章 运输层
目录5.1 运输层协议概述5.2 用户数据报协议UDP5.3 传输控制协议TCP概述5.4 可靠传输的工作原理5.5 TCP报文段的首部格式5.6 TCP可靠传输的实现5.7 TCP的流量控制5.8 TCP的拥塞控制5.9 TCP的运输链接管理...原创 2021-05-01 12:40:40 · 62 阅读 · 0 评论