精华内容
下载资源
问答
  • 网络信息安全:消息认证

    千次阅读 2018-07-30 21:30:29
    消息认证确保收到的数据确实和发送时的一样(没有修改、插入、删除或者重放),且发送方声称的身份是真实有效的。 什么是消息认证 用来验证消息完整性的一种机制或服务。消息认证确保收到的数据确实和发送时的一样...

    消息认证

    用来验证消息完整性的一种机制或服务。消息认证确保收到的数据确实和发送时的一样(没有修改、插入、删除或者重放),且发送方声称的身份是真实有效的。

    什么是消息认证

    用来验证消息完整性的一种机制或服务。消息认证确保收到的数据确实和发送时的一样(没有修改、插入、删除或者重放),且发送方声称的身份是真实有效的。

    消息认证关心的问题

    • 保护消息的完整性
    • 验证发起方身份
    • 消息源的不可否认

    消息认证的方法

    消息加密

    • 对称加密
    • 要求明文具有某种易于识别的结构,如在加密前对每个消息符加一个帧校验序列FCS(分为先加密再FCS和先FCS再加密)

    公钥加密作为认证手段

    • 若要提供认证,发送方用自己的私钥对消息加密,接收方用发送方的公钥解密(认证),就提供了认证功能
    • 如果发送方用私钥加密消息,再用接收方的公钥加密,就实现了既保密又认证的通信
    • 既保密又认证的通信的代价是需要执行四次复杂的公钥算法而不是两次

    消息认证码(MAC)

    MAC不提供数字签名,因为双方共享密钥

    MAC的特点

    • 使用一个私密密钥K,浓缩一个变长的消息M,产生一个固定长度的认证子
    • MAC是一种多对一的函数(若N为100,n为10,共有 2 2 100条不同的消息, 2 2 10种不同的MAC,平均而言同一MAC可由 2 2 100/ 2 2 10= 2 2 90条不同的消息产生,若密钥长度为5,则从消息集合到MAC的值的集合有 2 2 5= 32 32 不同的映射)
    • CBC加密方式
    • 三种认证方式
      1. 直接生成MAC加到报文后面发送
      2. 生成MAC加到报文之后再加密发送
      3. 先对报文进行加密再把生成的MAC加到加密后的报文后面发送

    MAC应具有以下性质

    • 如果一个攻击者得到M和 CK(M) C K ( M ) ,则攻击者构造一个消息M’,使得 CK(M)=CK(M) C K ( M ′ ) = C K ( M ) 应在计算上不可行
    • CK(M) C K ( M ) 应均匀分布,即随机选择消息M和M’, CK(M)=CK(M) C K ( M ) = C K ( M ) 的概率应该是 2 2 n,其中n是MAC的位数
    • 令M’为M的某些变换,即 M=f(M) M ′ = f ( M ) ,在这种情况下 Pr(CK(M)=CK(M))=2 P r ( C K ( M ) = C K ( M ′ ) ) = 2 n − n

    哈希函数(散列函数)

    H(M):输入为任意长度的消息M,输出为一个固定长度的散列值,称为消息摘要
    H(M)是消息M的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该散列值的变化

    六种方式

    • 先把散列值加到明文后面再加密发送
    • 先对散列值进行加密再加到明文后面发送
    • 先对散列值用发送方的私钥加密再加到明文后面发送
    • 先对散列值用发送方的私钥加密再加到明文后面然后再加密发送
    • 明文先与一个发送方和接收方都知道的一个秘密值S连接作为输入值产生哈希值,然后加到明文后面
    • 明文先与一个发送方和接收方都知道的一个秘密值S连接作为输入值产生哈希值,然后加到明文后面再加密发送

    散列函数的要求

    • H能用于任意大小的分组
    • H能产生定长的输出
    • 对任何给定的X,H(X)要相对容易计算,使得硬件和软件实现成为实际可能
    • 对任何给定的码h,寻找x使得H(x)=h在计算上是不可行的,即单向性
    • 对任何给定的分组x,寻找不等于x的y,使得H(x)=H(y)在计算上是不可行的
    • 寻找对任何的(x,y)对使得H(x)=H(y)在计算上是不可行的,即强抗冲突性

    生日攻击

    给定一个散列函数,有n个可能的输出,输出值为H(x),如果H有k个随机输入,k必须为多大才能使至少存在一个输入y,使得H(y)=H(x)的概率大于0.5
    对长度为m位的散列码,共有 2m 2 m 个可能的散列码,若要使任意的x,y,有H(x)=H(y)的概率为0.5,只需 k=2 k = 2 m/2 m / 2

    哈希函数的分类

    根据安全水平
    • 弱无碰撞:给定消息 x x X,在计算上几乎找不到异于 x x x X X 使h(x)=h(x)
    • 强无碰撞:在计算上几乎找不到异于 x x x X X 使h(x)=h(x)
    根据是否使用密钥
    • 带密钥的Hash函数:消息的散列值由只有通信双方知道的私密密钥K控制。此时散列值叫做MAC
    • 不带私密密钥的Hash函数:消息的散列值的产生无需使用密钥。此时散列值称为MDC
    展开全文
  • 计算机网络谢希仁第七版 课后答案

    万次阅读 多人点赞 2019-09-03 23:13:25
    答:实体(entity) 表示任何可发送或接收信息的硬件或软件进程。协议是控制两个对等实体进行通信的规则的集合。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户是服务的请求,服务器是服务的...

    谢希仁计算机网络第七版课后答案

    第一章 概述

    1-01 计算机网络向用户可以提供那些服务?答: 连通性和共享
    1-02 简述分组交换的要点。答:(1)报文分组,加首部(2)经路由器储存转发(3)在目的地合并
    1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
    在这里插入图片描述
    答: (1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。(2)报文交换:无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高,通信迅速。(3)分组交换:具有报文交换之高效、迅速的要点,且各分组小,路由灵活,网络生存性能好。
    1-04 为什么说因特网是自印刷术以来人类通信方面最大的变革?谢希仁计算机网络第七版课后答案
    答: 融合其他通信网络,在信息化过程中起核心作用,提供最好的连通性和信息共享,第一次提供了各种媒体形式的实时交互能力。
    谢希仁计算机网络第七版课后答案
    1-05 因特网的发展大致分为哪几个阶段?请指出这几个阶段的主要特点。
    答:从单个网络APPANET向互联网发展;TCP/IP协议的初步成型  建成三级结构的Internet;分为主干网、地区网和校园网;形成多层次ISP结构的Internet;ISP首次出现。
    1-06 简述因特网标准制定的几个阶段?
    答:(1)因特网草案(Internet Draft) ——在这个阶段还不是 RFC 文档。(2)建议标准(Proposed Standard) ——从这个阶段开始就成为 RFC 文档。(3)草案标准(Draft Standard)(4) 因特网标准(Internet Standard)
    1-07小写和大写开头的英文名internet 和Internet在意思上有何重要区别?
    答:(1) internet(互联网或互连网):通用名词,它泛指由多个计算机网络互连而成的网络。;协议无特指(2)Internet(因特网):专用名词,特指采用 TCP/IP 协议的互联网络。区别:后者实际上是前者的双向应用
    1-08 计算机网络都有哪些类别?各种类别的网络都有哪些特点?
    答:按范围:(1)广域网WAN:远程、高速、是Internet的核心网。
    (2)城域网:城市范围,链接多个局域网。
    (3)局域网:校园、企业、机关、社区。
    (4)个域网PAN:个人电子设备
    按用户:公用网:面向公共营运。专用网:面向特定机构。
    谢希仁计算机网络第七版课后答案
    1-09 计算机网络中的主干网和本地接入网的主要区别是什么?
    答:主干网:提供远程覆盖\高速传输\和路由器最优化通信。本地接入网:主要支持用户的访问本地,实现散户接入,速率低。
    1-10 试在下列条件下比较电路交换和分组交换。要传送的报文共x(bit)。从源点到终点共经过k段链路,每段链路的传播时延为d(s),数据率为b(b/s)。在电路交换时电路的建立时间为s(s)。在分组交换时分组长度为p(bit),且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?(提示:画一下草图观察k段链路共有几个结点。)
    答:线路交换时延:kd+x/b+s, 分组交换时延:kd+(x/p)(p/b)+ (k-1)(p/b),其中(k-1)(p/b)表示K段传输中,有(k-1)次的储存转发延迟,当s>(k-1)(p/b)时,电路交换的时延比分组交换的时延大,当x>>p,相反。
    1-11 在上题的分组交换网中,设报文长度和分组长度分别为x和(p+h)(bit),其中p为分组的数据部分的长度,而h为每个分组所带的控制信息固定长度,与p的大小无关。通信的两端共经过k段链路。链路的数据率为b(b/s),但传播时延和结点的排队时间均可忽略不计。若打算使总的时延为最小,问分组的数据部分长度p应取为多大?(提示:参考图1-12的分组交换部分,观察总的时延是由哪几部分组成。)答:总时延D表达式,分组交换时延为:D= kd+(x/p)((p+h)/b)+ (k-1)(p+h)/b D对p求导后,令其值等于0,求得p=[(xh)/(k-1)]^0.5
    1-12 因特网的两大组成部分(边缘部分与核心部分)的特点是什么?它们的工作方式各有什么特点?
    答:边缘部分:由各主机构成,用户直接进行信息处理和信息共享;低速连入核心网。核心部分:由各路由器连网,负责为边缘部分提供高速远程分组交换。
    谢希仁计算机网络第七版课后答案
    1-13 客户服务器方式与对等通信方式的主要区别是什么?有没有相同的地方?
    答:前者严格区分服务和被服务者,后者无此区别。后者实际上是前者的双向应用。
    1-14 计算机网络有哪些常用的性能指标?
    答:速率,带宽,吞吐量,时延,时延带宽积,往返时间RTT,利用率
    1-15 假定网络利用率达到了90%。试估计一下现在的网络时延是它的最小值的多少倍?
    解:设网络利用率为U。,网络时延为D,网络时延最小值为D0U=90%;D=D0/(1-U)---->D/ D0=10 现在的网络时延是最小值的10倍
    1-16 计算机通信网有哪些非性能特征?非性能特征与性能特征有什么区别?
    答:征:宏观整体评价网络的外在表现。性能指标:具体定量描述网络的技术性能。
    1-17 收发两端之间的传输距离为1000km,信号在媒体上的传播速率为2×108m/s。试计算以下两种情况的发送时延和传播时延:
    (1) 数据长度为107bit,数据发送速率为100kb/s。
    (2) 数据长度为103bit,数据发送速率为1Gb/s。
    从上面的计算中可以得到什么样的结论?
    解:(1)发送时延:ts=107/105=100s传播时延tp=106/(2×108)=0.005s
    (2)发送时延ts =103/109=1µs传播时延:tp=106/(2×108)=0.005s
    结论:若数据长度大而发送速率低,则在总的时延中,发送时延往往大于传播时延。但若数据长度短而发送速率高,则传播时延就可能是总时延中的主要成分。
    1-18 假设信号在媒体上的传播速度为2×108m/s.媒体长度L分别为:
    (1)10cm(网络接口卡)(2)100m(局域网)
    (3)100km(城域网)(4)5000km(广域网)
    试计算出当数据率为1Mb/s和10Gb/s时在以上媒体中正在传播的比特数。
    谢希仁计算机网络第七版课后答案
    解:(1)1Mb/s:传播时延=0.1/(2×108)=5×10-10比特数=5×10-10×1×106=5×10-4 1Gb/s: 比特数=5×10-10×1×109=5×10-1
    (2)1Mb/s: 传播时延=100/(2×108)=5×10-7比特数=5×10-7×1×106=5×10-1 1Gb/s: 比特数=5×10-7×1×109=5×102
    (3) 1Mb/s: 传播时延=100000/(2×108)=5×10-4比特数=5×10-4×1×106=5×1021Gb/s: 比特数=5×10-4×1×109=5×105
    (4)1Mb/s: 传播时延=5000000/(2×108)=2.5×10-2比特数=2.5×10-2×1×106=5×1041Gb/s: 比特数=2.5×10-2×1×109=5×107
    1-19 长度为100字节的应用层数据交给传输层传送,需加上20字节的TCP首部。再交给网络层传送,需加上20字节的IP首部。最后交给数据链路层的以太网传送,加上首部和尾部工18字节。试求数据的传输效率。数据的传输效率是指发送的应用层数据除以所发送的总数据(即应用数据加上各种首部和尾部的额外开销)。若应用层数据长度为1000字节,数据的传输效率是多少?
    解:(1)100/(100+20+20+18)=63.3%
    (2)1000/(1000+20+20+18)=94.5%
    1-20 网络体系结构为什么要采用分层次的结构?试举出一些与分层体系结构的思想相似的日常生活。答:分层的好处:①各层之间是独立的。某一层可以使用其下一层提供的服务而不需要知道服务是如何实现的。②灵活性好。当某一层发生变化时,只要其接口关系不变,则这层以上或以下的各层均不受影响。③结构上可分割开。各层可以采用最合适的技术来实现④易于实现和维护。⑤能促进标准化工作。与分层体系结构的思想相似的日常生活有邮政系统,物流系统。
    谢希仁计算机网络第七版课后答案
    1-21 协议与服务有何区别?有何关系?答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成:
    (1)语法:即数据与控制信息的结构或格式。
    (2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
    (3)同步:即事件实现顺序的详细说明。协议是控制两个对等实体进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下面一层提供服务。
    协议和服务的概念的区分:
    1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。
    2、协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在OSI中称为服务原语。

    1-22 网络协议的三个要素是什么?各有什么含义?谢希仁计算机网络第七版课后答案
    答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成:
    (1)语法:即数据与控制信息的结构或格式。
    (2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
    (3)同步:即事件实现顺序的详细说明。
    1-23 为什么一个网络协议必须把各种不利的情况都考虑到?
    答:因为网络协议如果不全面考虑不利情况,当情况发生变化时,协议就会保持理想状况,一直等下去!就如同两个朋友在电话中约会好,下午3点在公园见面,并且约定不见不散。这个协议就是很不科学的,因为任何一方如果有耽搁了而来不了,就无法通知对方,而另一方就必须一直等下去!所以看一个计算机网络是否正确,不能只看在正常情况下是否正确,而且还必须非常仔细的检查协议能否应付各种异常情况。
    1-24 论述具有五层协议的网络体系结构的要点,包括各层的主要功能。谢希仁计算机网络第七版课后答案
    答:综合OSI 和TCP/IP 的优点,采用一种原理体系结构。各层的主要功能:物理层 物理层的任务就是透明地传送比特流。(注意:传递信息的物理媒体,如双绞线、同轴电缆、光缆等,是在物理层的下面,当做第0 层。) 物理层还要确定连接电缆插头的定义及连接法。数据链路层 数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息。网络层 网络层的任务就是要选择合适的路由,使 发送站的运输层所传下来的分组能够
    正确无误地按照地址找到目的站,并交付给目的站的运输层。运输层 运输层的任务是向上一层的进行通信的两个进程之间提供一个可靠的端到端服务,使它们看不见运输层以下的数据通信的细节。应用层 应用层直接为用户的应用进程提供服务。
    1-25 试举出日常生活中有关“透明”这种名词的例子。
    答:电视,计算机视窗操作系统、工农业产品
    1-26 试解释以下名词:协议栈、实体、对等层、协议数据单元、服务访问点、客户、服务器、客户-服务器方式。
    答:实体(entity) 表示任何可发送或接收信息的硬件或软件进程。协议是控制两个对等实体进行通信的规则的集合。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户是服务的请求方,服务器是服务的提供方。客户服务器方式所描述的是进程之间服务和被服务的关系。 协议栈:指计算机网络体系结构采用分层模型后,每层的主要功能由对等层协议的运行来实现,因而每层可用一些主要协议来表征,几个层次画在一起很像一个栈的结构.对等层:在网络体系结构中,通信双方实现同样功能的层.
    协议数据单元:对等层实体进行信息交换的数据单位.服务访问点:在同一系统中相邻两层的实体进行交互(即交换信息)的地方.服务访问点SAP是一个抽象的概念,它实体上就是一个逻辑接口.
    1-27 试解释everything over IP 和IP over everthing 的含义。谢希仁计算机网络第七版课后答案
    TCP/IP协议可以为各式各样的应用提供服务 (所谓的everything over ip)

    答:允许IP协议在各式各样的网络构成的互联网上运行(所谓的ip over everything)
    在这里插入图片描述

    计算机网络答案 下载地址在这里 https://www.cnblogs.com/leetcodetijie/gallery/image/340363.html

    展开全文
  • UART

    千次阅读 多人点赞 2019-05-07 21:46:40
    UART基础知识 1、UART原理说明 发送数据时,CPU将并行数据写入UART,...UART之间以全双工方式传输数据,最精确的连线方法只有3根电线:TxD用于发送数据,RxD用于接收数据,Gnd用于给双发提供参考电平,连线如下...

     

     

    UART基础知识

    1UART原理说明

     

    发送数据时,CPU将并行数据写入UARTUART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,串行收集然后放在缓冲区中,CPU即可读取UART获得这些数据。UART之间以全双工方式传输数据,最精确的连线方法只有3根电线:TxD用于发送数据,RxD用于接收数据,Gnd用于给双发提供参考电平,连线如下:

     

     

    UART使用标准的TTL/CMOS逻辑电平(0~5v0~3.3v0~2.5v0~1.8v)来表示数据,高电平表示1,低电平表示0。为了增强数据的抗干扰能力、提高传输长度,通常将TTL/CMOD逻辑电平转换为RS-232逻辑电平,3~12v表示0-3~-12v表示1

     

    TxDRxD数据线以位为最小单位传输数据,而帧由具有完整意义的、不可分割的若干位组成,它包含开始位、数据位、校验位(需要的话)和停止位。发送数据之前,UART之间要约定好数据的传输速率(即每位所占据的时间,其倒数称为波特率)、数据的传输格式(即有多少个数据位、是否使用校验位、是奇校验还是偶校验、有多少个停止位)。

    数据传输流程如下:

    1)平时数据线处于空闲状态(1状态)

    2)当要发送数据时,UART改变TxD数据线的状态(变为0状态)并维持1位的时间,这样接收方检测到开始位后,在等待1.5位的时间就开始一位一位地检测数据线的状态得到所传输的数据。

    3UART一帧中可以有5678位的数据,发送方一位一位地改变数据线的状态将他们发送出去,首先发送最低位。

    4)如果使用校验功能,UART在发送完数据后,还要发送1位校验位。有两种校验方法:奇校验、偶校验——数据位连同校验位中,1的数据等于奇数或偶数。

    5)最后,发送停止位,数据线恢复到空闲状态(1状态)。停止位的长度有3种:1位、1.5位、2位。

     

    下图演示了UART使用7个数据位、偶校验、2个停止位的格式传输字符‘A’(二进制值为0b1000001)时,TTL/COM逻辑电平和RS-232逻辑电平对应的波形

    TTL/COM逻辑电平

     

    RS-232逻辑电平

     

     

    2s3c2440 UART特性

    1)工作模式

    s3c2440中,UART有三个独立的通道,UART0UART1UART2,每个通道都可以工作于中断模式和DMA模式。关于这两种模式我们有必要说一下

    <1>中断模式:

    这就是说,当要收发数据时会向CPU发出中断请求,由CPU完成收发的工作

    <2>DMA模式:

    这就是说,当要收发数据发出DMA请求,然后DMACPU发出总线请求,CPU将总线交给DMA之后,由DMA控制数据的收发工作。

     

    2)数据收发方式

    <1>使用FIFO

    在发送端,首先检查对方是否请求发送以及FIFO是否已满,只有当对方有发送请求且FIFO未满的情况下,才会向FIFO写入数据,当FIFO数据达到一定数量是,就会进行中断请求或DMA请求,将数据通过移位寄存器发送出去。在接收端,通过移位寄存器将数据存入FIFO中。

    在接收端,首先检查FIFO是否已满,如果FIFO未满,则可以发出请求发送信号。

     

    <2>不使用FIFO

    在发送端首先检查发送缓冲器是否为空以及是否有发送请求,如果发送缓冲区为空,就会向发送缓冲区写入数据,然后产生中断请求或DMA请求,将数据发送到接收端。当接收端的接收缓冲区接收到数据后,先读取数据,然后再次请求发送数据。

     

    3s3c2410 UART的使用方法

    1)将所涉及到的UART通道管脚设为UART功能

    2UBRDIVn寄存器:设置波特率

    3ULCONn寄存器:设置传输格式

    4UCONn寄存器:选择UART时钟源、设置UART中断方式等

    5UFCONn寄存器和UFSTATn寄存器:用来设置是否使用FIFO,设置各个FIFO的触发阀值

    6UMCONn寄存器和UMSTATn寄存器:用于流量控制

     

     

     

     

     

     

     

    展开全文
  • TCP三次握手详解-深入浅出(有图实例演示)

    万次阅读 多人点赞 2018-08-08 21:13:48
    TCP是属于网络分层中的传输层,因为OSI分为层,感觉太麻烦了,所以分为四层就...1.客户主动(active open)去connect服务器,并且发送SYN 假设序列号为J, 服务器是被动打开(passive open) 2.服务器在收到SYN后,它...

    1. 准备

    TCP是属于网络分层中的传输层,因为OSI分为7层,感觉太麻烦了,所以分为四层就好了,简单。
    分层以及每层的协议,TCP是属于传输层,如下两张图:
    图1
    这里写图片描述

    TCP三次握手会涉及到状态转换所以这里贴出TCP的状态转换图如下:
    这里写图片描述

    2.TCP三次握手简述

    要想简单了解TCP三次握手,我们首先要了解TCP头部结构,如下:
    在这里插入图片描述

    TCP传递给IP层的信息单位称为报文段或段,下面都用做单位。

    TCP三次握手如图:
    这里写图片描述

    2.1 第一次握手

    客户端给服务器发送一个SYN段(在 TCP 标头中 SYN 位字段为 1 的 TCP/IP 数据包), 该段中也包含客户端的初始序列号(Sequence number = J)。

    SYN是同步的缩写,SYN 段是发送到另一台计算机的 TCP 数据包,请求在它们之间建立连接

    2.2 第二次握手

    服务器返回客户端 SYN +ACK 段(在 TCP 标头中SYN和ACK位字段都为 1 的 TCP/IP 数据包), 该段中包含服务器的初始序列号(Sequence number = K);同时使 Acknowledgment number = J + 1来表示确认已收到客户端的 SYN段(Sequence number = J)。

    ACK 是“确认”的缩写。 ACK 数据包是任何确认收到一条消息或一系列数据包的 TCP 数据包

    2.3 第三次握手

    客户端给服务器响应一个ACK段(在 TCP 标头中 ACK 位字段为 1 的 TCP/IP 数据包), 该段中使 Acknowledgment number = K + 1来表示确认已收到服务器的 SYN段(Sequence number = K)。

    2.4 实例观察

    2.4.1 tcpdump

    使用tcpdump观察如下:因为都是在本机同时运行client和server所以命令为:tcpdump -i lo port 5555, 只能监听回路lo接口,结果如下
    这里写图片描述
    如图用红色圈起来的就是3次握手,但是为什么最后一次握手,为什么ack = 1,而不是369535922 呢,
    这是因为这里的第三次握手tcpdump显示的是相对的顺序号。但是为了便于观察我们需要把tcpdump的
    顺序号变为绝对的顺序号。

    命令只需要加-S(大写)便可,即:tcpdump -i lo port 5555 -S
    加上之后结果就正常了如下图:
    这里写图片描述
    从tcpdump的数据,可以明显的看到三次握手的过程是:
    第一次握手:client SYN=1, Sequence number=2322326583 —> server
    第二次握手:server SYN=1,Sequence number=3573692787; ACK=1, Acknowledgment number=2322326583 + 1 —> client
    第三次握手:client ACK=1, Acknowledgment number=3573692787 + 1 -->server

    想简单了解一下TCP三次握手的话, 看到这里就可以了.

    3.TCP三次握手详细解析过程:

    这里写图片描述

    3.1 第一次握手

    客户在socket() connect()后主动(active open)连接上服务器, 发送SYN ,这时客户端的状态是SYN_SENT
    服务器在进行socket(),bind(),listen()后等待客户的连接,收到客户端的 SYN 后,

    3.1.1 半连接队列(syn queue)未满

    服务器将该连接的状态变为SYN_RCVD, 服务器把连接信息放到半连接队列(syn queue)里面。

    3.1.2 半连接队列(syn queue)已满

    服务器不会将该连接的状态变为SYN_RCVD,且将该连接丢弃(SYN flood攻击就是利用这个原理,
    对于SYN foold攻击,应对方法之一是使syncookies生效,将其值置1即可,路径/proc/sys/net/ipv4/tcp_syncookies,
    即使是半连接队列syn queue已经满了,也可以接收正常的非恶意攻击的客户端的请求,
    但是这种方法只在无计可施的情况下使用,man tcp里面的解析是这样说的,
    这里写图片描述
    但是我不知道为什么Centos6.9默认是置为1,所以这让我很疑惑
    这里写图片描述)。
    半连接队列(syn queue)最大值 /proc/sys/net/ipv4/tcp_max_syn_backlog
    这里写图片描述
    SYN flood攻击

    攻击方的客户端只发送SYN分节给服务器,然后对服务器发回来的SYN+ACK什么也不做,直接忽略掉,
    不发送ACK给服务器;这样就可以占据着服务器的半连接队列的资源,导致正常的客户端连接无法连接上服务器。-----[维基百科]

    (SYN flood攻击的方式其实也分两种,第一种,攻击方的客户端一直发送SYN,对于服务器回应的SYN+ACK什么也不做,不回应ACK, 第二种,攻击方的客户端发送SYN时,将源IP改为一个虚假的IP, 然后服务器将SYN+ACK发送到虚假的IP, 这样当然永远也得不到ACK的回应。)

    3.2 第二次握手

    服务器返回SYN+ACK段给到客户端,客户端收到SYN+ACK段后,客户端的状态从SYN_SENT变为ESTABLISHED,
    也即是connect()函数的返回。

    3.3 第三次握手

    全连接队列(accept queue)的最大值 /proc/sys/net/core/somaxconn (默认128)
    这里写图片描述
    全连接队列值 = min(backlog, somaxconn)
    这里的backlog是listen(int sockfd, int backlog)函数里面的那个参数backlog

    3.3.1 全连接队列(accept queue)未满

    服务器收到客户端发来的ACK, 服务端该连接的状态从SYN_RCVD变为ESTABLISHED,
    然后服务器将该连接从半连接队列(syn queue)里面移除,且将该连接的信息放到全连接队列(accept queue)里面。

    3.3.2 全连接队列(accept queue)已满

    服务器收到客户端发来的ACK, 不会将该连接的状态从SYN_RCVD变为ESTABLISHED。
    当然全连接队列(accept queue)已满时,则根据 tcp_abort_on_overflow 的值来执行相应动作
    /proc/sys/net/ipv4/tcp_abort_on_overflow 查看参数值
    这里写图片描述

    3.3.2.1 tcp_abort_on_overflow = 0

    则服务器建立该连接的定时器,

    这个定时器是一个服务器的规则是从新发送syn+ack的时间间隔成倍的增加,
    比如从新了第二次握手,进行了5次,这五次的时间分别是 1s, 2s,4s,8s,16s,
    这种倍数规则叫“二进制指数退让”(binary exponential backoff)

    给客户端定时从新发回SYN+ACK即从新进行第二次握手,(如果客户端设定的超时时间比较短就很容易出现异常)
    服务器从新进行第二次握手的次数/proc/sys/net/ipv4/tcp_synack_retries
    这里写图片描述

    3.3.2.2 tcp_abort_on_overflow = 1

    关于tcp_abort_on_overflow的解析如下:
    这里写图片描述
    意思应该是,当 tcp_abort_on_overflow 等于1 时,重置连接(一般是发送RST给客户端),
    至于怎么重置连接是系统的事情了。
    不过我在查资料的过程发现,阿里中间件团队博客说并不是发送RST, —[阿里中间件团队博客]

    这个博客跑的实例观察到的是服务器会忽略client传过来的包,然后client重传,一定次数后client认为异常,然后断开连接。
    当然,我们写代码的都知道代码是第一手的注释,实践是检验真理的唯一标准
    最好还是自己以自己实践为准,因为可能你的环境跟别人的不一样。)

    查看全连接队列(accept queue)的使用情况
    这里写图片描述
    如上图,第二列Recv-Q是,全连接队列接收到达的连接,第三列是Send-Q全连接队列的所能容纳最大值,
    如果,Recv-Q 大于 Send-Q 那么大于的那部分,是要溢出的即要被丢弃overflow掉的。

    希望热心的网友帮忙提改进意见时可以直接指出哪一段第几句(比如 2.4.1 tcpdump 第一段第一句, 命令tcpdump -i lo port 5555 里参数 i 用错了,应该用 I),这样比较快速找到好改正。

    感想:
    1.本来想写TCP连接的建立和终止的,没想到要讲清楚TCP连接的建立已经很大的篇幅了,就只讲TCP连接的建立而已。
    2.以前看书的时候,没有解决一个问题的来的深刻或者说脉络清晰,这个就是主题阅读的好处吧。
    3.以前没有养成一个遇到问题深入解析,解决问题的习惯,今后慢慢养成。

    下面的参考1有实例,会比较详细一点,清晰一些。
    参考:

    1. http://jm.taobao.org/2017/05/25/525-1/
    2. https://coolshell.cn/articles/11564.html
    3. https://zh.wikipedia.org/wiki/SYN_cookie
    4. https://zh.wikipedia.org/wiki/SYN_flood
    5. https://www.cnblogs.com/menghuanbiao/p/5212131.html
    展开全文
  • 浅析HTTP协议

    千次阅读 多人点赞 2016-07-30 17:24:37
    用于HTTP协议交互的信息称为HTTP报文。请求端的HTTP报文叫做请求报文,响应端的叫做响应报文。HTTP报文由报文首部、空行和报文主体三部分组成,通常,并不一定要有报文主体。请求报文和响应报文的结构如下图: ...
  • 计算机网络谢希仁第七版课后习题答案

    万次阅读 多人点赞 2019-10-12 21:43:44
    答:实体(entity) 表示任何可发送或接收信息的硬件或软件进程。协议是控制两个对等实体进行通信的规则的集合。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户是服务的请求,服务器是服务的...
  • 它不要求发送方和接收方之间的会话连接,不保证数据以相同的顺序到达。 8.简述TCP/IP参考模型的层次划分,以及与OSI模型的主要区别。 答:TCP/IP参考模型包括4层:应用层、传输层、网络互联层、网络接口层。 与...
  • MQTT协议

    千次阅读 2016-04-26 21:48:31
    提供一种机制,当客户端异常中断时,利用 Last Will 和 Testament 特性来通知有关各。 1. 简介 该协议规范主要分为3个主要部分: 对所有类型的数据包都通用的消息格式 每种特定数据包的具体细节 ...
  • 《计算机网络技术》第二章课后习题答案(全)

    万次阅读 多人点赞 2019-08-02 22:02:34
    无字符发送时,发送方就一直发送停止位。接收方根据起始位和停止位判断字符的开始和结束,并以字符为单位接收数据。 同步传输 以数据块为单位进行发送。每个数据块内包含多个字符,每个字符可以用5~8bit标识;每...
  • 序号在 [rcv_base, rcv_base + N -1] 内的分组被正确接收:在此情况下,收到的分组落在接收方的窗口内,一个选择 ACK 被回送给发送方。如果该分组以前没收到过,则缓存该分组。如果该分组的序号等于接收窗口的基序号...
  • LDPC编译码

    万次阅读 多人点赞 2018-03-07 19:28:32
    在每次迭代过程中,无论是变量节点传送给校验节点的信息或者校验节点传送给变量节点的信息,都不应该包括前次迭代中接收方发送给发送方信息,这样是为了保证发送的信息与接收节点已得到的信息相互对立。...
  • 计算机网络技术期末个人总结

    千次阅读 多人点赞 2019-04-26 14:56:43
    :在接收方进行,在发送方添加的协议控制信息(报头)是额外的信息,需要在接收方接收到数据信息之后再将其去掉,这个过程就称为解封装。 • 接口:相邻实体间的通信通过它们的边界进行,该边界称为相邻层间的...
  • 文章目录一点说明选择题概述密码技术信息认证技术计算机病毒网络攻击和防范防火墙技术入侵检测技术数据备份与恢复技术虚拟专用网技术电子商务安全填空题概述密码技术信息认证技术计算机病毒网络攻击与防范技术防火墙...
  • 公钥加密、数字签名、消息认证

    千次阅读 2018-05-11 09:23:34
    (比如加密字符串,加密时每个字符ASCII码同时加2,解密时ASCII同时减2,在这里密钥就是2,而ASCII的操作称作加密解密算法,加密前的字符串称为明文,加密后的字符串称为密文) 但是对称加密有一个问题:通信双方在...
  • 第三支付公司工作原理 所谓第三支付:  就是一些和各大银行签约、并具备一定实力和信誉保障的第三独立机构提供的交易支持平台。在通过第三支付平台的交易中,买方对第三平台提供的账户进行货款支付,由第...
  • 发送速率(传输速率)和传播速率

    千次阅读 多人点赞 2019-09-10 08:32:31
    1.发送速率(传输速率)是指主机或路由器往(向)数字信道上发送数据的速度,也称为数据率或比特,单位是比特每秒,b/s。 2.传播速率是指电磁波在信道中传播的速度,单位是“米每秒”,即m/s,更常用的是千米每秒...
  • 我们将第一个数据包称为A,将第二个数据包称为B。 a)如果瓶颈链路是第一个链路,则数据包B在第一个链路上排队等待数据包A的传输。因此,目的地的数据包到达时间仅为L / Rs。 b)如果第二个链路是瓶颈链路,并且两...
  • 其技术目标是实现不同地域收发双方的同步通信互联,实现一致的信息数据交换,因此,通信系统是否能够完全的实现数据的同步交换成为了衡量通信质量的重要因素,如果通信系统没有实现同步,将会导致系统的瘫痪,影响...
  • 仅有发送方和希望的接收方能够理解传输报文的内容。因为窃听者可以截获报文,这必须要求报文在一定程度上进行加密,是截取的报文无法被截获者所理解。 报文完整性。发送方和希望的接收方希望确保其通信的内容在...
  • 信息安全领域相关术语介绍

    千次阅读 2014-11-16 15:32:07
    信息安全领域相关术语介绍!
  • 同步通信和异步通信

    万次阅读 2018-09-02 09:53:14
    异步通信时不要求接收端时钟和发送端时钟同步,发送发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。 同步通信效率高;异步通信效率较低。 同步通信较复杂,双方时钟的允许误差较小;异步通信简单,...
  • 信息安全性与保密性

    千次阅读 2019-08-20 17:37:27
    保密性是指系统中的信息必须按照该信息拥有者的要求保证一定的秘密性,不会被未经许可的第三非法获取。系统必须阻止一切对秘密信息的非授权访问或泄露。 完整性是指系统中的信息应当安全、准确、有效,要求数据...
  • 加密将原始数据和加密密钥一起经过特殊加密算法处理后,生成密文结果,解密使用相同的秘钥及相同加密算法的逆算法对密文结果进行解密,公式如下: 加密:密文结果 = 加密算法(原始数据 + 加密密钥) 解密...
  • RTCP介绍及发送间隔控制

    千次阅读 2017-09-22 18:40:22
    主要包括SLI/PLI/FIR,集中报文手段,目的是在关键帧丢失无法解码时,请求发送方重新生成并发送一个关键帧。本质是一种重传,但是跟传输层的重传的区别是,它重传是最新生成的帧。 PLI 是Picture ...
  • 【计算机网络】谢希仁笔记 运输层

    千次阅读 多人点赞 2019-04-21 17:20:49
    从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于...
  • 计算机网络历年试题分析(大题待补充)

    千次阅读 多人点赞 2020-09-05 21:14:08
    简述TCP协议慢启动过程/简述TCP中拥塞控制的实现机制(2) 简述虚电路VC的组成及建立过程 发送方发送含有地址信息的特定的控制信息块(如:呼叫分组),该信息块途经的每个中间结点根据当前的逻辑信道(LC)使用...
  • 第七版(谢希仁)计算机网络 知识点总结

    千次阅读 多人点赞 2019-06-24 11:09:24
    OSPF只在链路状态发生变化时,才向本自治系统中的所有路由器,用洪泛法发送与本路由器相邻的所有路由器的链路状态信息。“链路状态”指明本路由器都和哪些路由器相邻,以及该链路的“度量”。“度量”可表示费用、...
  • 计算机网络简答题

    千次阅读 2019-01-07 09:00:52
    信息仅有发送方和接收方能够理解。 完整性 内容未被恶意篡改。 鉴别 通信双方身份的真实性。 可用性 对合法用户要可持续使用 合法性 对非授权人或非授权方式不可使用。 鉴别和报文完整性 鉴别 ...
  • TCP/IP 协议的发送与接收

    万次阅读 2018-08-06 10:36:18
    称为报文最大生存时间(MSL,Maximum Segment Lifetime)。TIME_WAIT 要等待 2MSL 才会进入 CLOSED 状态。ACK 包到达服务器需要 MSL 时间,服务器重传 FIN 包也需要 MSL 时间,2MSL 是数据包往返的最大时间,如果 ...
  • VC++实现UDP数据包发送

    千次阅读 2012-11-14 18:15:10
    UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,549
精华内容 66,619
关键字:

信息的发送方称为