
计算机网络
文章平均质量分 73
计算机网络相关信息
lliuhao--
贵在坚持
展开
-
数字签名与数字证书
发送报文时,发送方用一个哈希函数从报文文本中生成。原创 2023-07-28 22:10:08 · 710 阅读 · 0 评论 -
对称加密和非对称加密体系
在RSA私钥和公钥生成的过程中,共出现过p,q,N,φ(N),e,d,其中(N,e组成公钥),其他的都不是公开的,一旦d泄露,就等于私钥泄露。然而,只有将N质因数分解,才能算出d。也就意味着私钥破译。但是,大整数的质因数分解是非常困难的,因此RSA是比较可靠的。这两个密钥在数学上是相关的,并且不能由公钥计算出对应的私钥,同样也不能由私钥计算出对应的公钥。发送方用该密钥对待发消息进行加密,然后将消息传输至接收方,接收方再用相同的密钥对收到的消息进行解密。至此完成计算,其中(N,e)是公钥,(N,d)是私钥。原创 2023-07-28 22:04:37 · 231 阅读 · 0 评论 -
数据链路层是如何传递数据的
数据链路层的主要作用就是加强物理层传输原始比特流的功能。其负责将物理层提供的可能出错的物理连接,改造成逻辑上无差错的数据链路。封装成帧、透明传输、差错控制。原创 2023-07-28 22:00:18 · 503 阅读 · 0 评论 -
NAT协议(网络地址转换协议)详解
这种通过使用少量的IP地址代表较多的私有IP地址的方式,将有助于减少IP地址空间的枯竭。原创 2023-07-28 21:57:14 · 2046 阅读 · 0 评论 -
ping命令
当A设备ping B设备时候,会同时发出arp和icmp协议。arp协议用于根据目的ip获取默认网关的mac地址,icmp协议用于实现ping的功能。MAC地址在两个设备间通信时变化,传送时DestMac和SourceMac会一直不停变化,但是ip地址始终不变。原创 2023-07-28 21:49:43 · 166 阅读 · 0 评论 -
ICMP协议(网际报文控制协议)详解
ICMP协议是一个网络层协议。。原创 2023-07-28 21:46:14 · 3320 阅读 · 0 评论 -
ARP协议(地址解析协议)详解
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。而ARP协议可以接收来自IP协议的逻辑地址,将其映射为相应的物理地址,然后把物理地址递交给数据链路层。这个ARP表储存在网络中的每一台机器上。局域网中的每一台主机都会接受并处理这个ARP请求报文,然后进行验证,查看接收方的IP地址是不是自己的地址,只有验证成功的主机才会返回一个ARP响应报文,这个响应报文包含接收方的IP地址和物理地址。原创 2023-07-28 00:02:24 · 403 阅读 · 0 评论 -
IP协议详解
IP数据报进行分片之后,当它到达目的站时,由目的端的IP层来进行组装。IP分片和完整IP报文差不多拥有相同的IP头。ID域对于每个分片都是一致的,具有同一个ID的IP分片将会重新组装。13位片偏移则记录了某IP片相对整个包的位置。中间的3位标志则标志着该分片后面是否还有新的分片,这三个标志就组成了IP分片的所有信息,接受方就可以利用这些信息对IP数据进行重新组织。IP分片是网络上传输IP报文的一种技术手段。这部分最多包含40个字节,因此IP头部最长是60字节(其中还包含前面讨论的20字节的固定部分)。原创 2023-07-28 00:01:59 · 1024 阅读 · 0 评论 -
网络层协议总览
网络层的主要协议包括IP、ARP、RARP、ICMP、IGMP以及各种路由选择协议等。原创 2023-07-28 00:01:35 · 357 阅读 · 0 评论 -
UDP丢包问题详解
解决方法:增加系统发送或接收缓冲区大小。原创 2023-07-27 23:36:19 · 990 阅读 · 0 评论 -
udp包为什么最好不要大于1472字节
但这并不是指链路层的长度被限制在1500字节,其实这个MTU指的是链路层的数据区.并不包括链路层的首部和尾部的18个字节。因为IP数据报的首部为20字节,所以IP数据报的数据区长度最大为1480字节。而这个1480字节就是用来放TCP传来的TCP报文段或UDP传来的UDP数据报的。又因为UDP数据报的首部8字节,所以UDP数据报的数据区最大长度为1472字节.这个1472字节就是我们可以使用的字节数。(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的。原创 2023-07-27 23:33:57 · 698 阅读 · 0 评论 -
DoS攻击
拒绝服务攻击DoS(Denial of Service):使系统过于忙碌而不能执行有用的业务并且占尽关键系统资源。它是基于这样的思想:用数据包淹没本地系统,以打扰或严重阻止捆绑本地的服务响应外来合法的请求,甚至使本地系统崩溃。原创 2023-07-27 23:29:05 · 368 阅读 · 0 评论 -
TCP KeepAlive与HTTP Keep-Alive
从图中可以发现一个完整的HTTP事务,有连接的建立,请求的发送,响应接收,断开连接这四个过程,早期通过HTTP协议传输的数据以文本为主,一个请求可能就把所有要返回的数据取到,但是,现在要展现一张完整的页面需要很多个请求才能完成,如图片,JS,CSS等,如果每一个HTTP请求都需要新建并断开一个TCP,这个开销是完全没有必要的。KeepAlive并不是默认开启的,在Linux系统上没有一个全局的选项去开启TCP的KeepAlive。需要开启KeepAlive的应用必须在TCP的socket中单独开启。原创 2023-07-27 23:25:17 · 1609 阅读 · 0 评论 -
TCP连接过程中如果拔掉网线会发生什么?
等客户端插回网线后,如果客户端向服务端发送了数据,由于服务端已经没有与客户端相同四元祖的 TCP 连接了,因此服务端内核就会回复 RST 报文,客户端收到后就会释放该 TCP 连接。:当连接超过一段时间没有数据传输之后,TCP自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,连接可以继续保持,如果对方没有报文返回,并且重试了多次之后则认为连接丢失,没有必要保持连接。在客户端拔掉网线后,服务端向客户端发送的数据报文会得不到任何的响应,在等待一定时长后,,重传未得到响应的数据报文。原创 2023-07-27 23:19:55 · 927 阅读 · 0 评论 -
TCP/IP的分包粘包
因为TCP为了减少额外开销,采取的是流式传输,所以接收端在一次接收的时候有可能一次接收多个包。而TCP粘包就是发送方的若干个数据包到达接收方的时候粘成了一个包。多个包首尾相接,无法区分。当然还有可能是分包情况,同一个包,两次才能接收到。原创 2023-07-27 23:13:24 · 869 阅读 · 0 评论 -
TCP如何保证服务的可靠性
滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输,相互连接的主机间存在两个滑动窗口:一个用于接收数据,另一个用于发送数据。根据接收端的接收情况,动态去调整窗口大小,然后来控制发送端的数据流量。发送窗口:在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口。接收窗口:接收窗口用来对发送方进行流量控制,而发送窗口的大小 W 代表在还没有收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。原创 2023-07-27 23:12:46 · 1283 阅读 · 0 评论 -
RTO(Retransmission Time Out):重传超时时间
RTO(Retransmission Time Out):重传超时时间,即从数据发送时刻算起,超过这个时间便执行重传。原创 2023-07-27 22:42:45 · 225 阅读 · 0 评论 -
TCP三次握手/四次挥手
考虑场景,B是服务器,A是一个合法的客户端,C假冒A(比如模拟IP等)和B进行通信。C假冒A,B接受后把ACK会直接发给A。由于A没有发送过seq=ISN _C的请求,当A收到ISN_C的ack后直接发送reset 给B,最终关闭了链接。如下图所示:假如初始序列号不是随机的,而是可以推测的,那么C就可以拿到ISN_B,然后模拟一个ACK过去,B最终会建立链接,C开始传递数据,这就会产生非常严重的安全问题(比如SYN泛洪),所以ISN随机是必须的。原创 2023-07-27 22:36:53 · 289 阅读 · 0 评论 -
TCP粘包问题
举个例子:有三个数据包,大小分别为2k、4k、6k,如果采用UDP发送的话,不管接受方的接收缓存有多大,我们必须要进行至少三次以上的发送才能把数据包发送完,但是使用TCP协议发送的话,我们只需要接受方的接收缓存有12k的大小,就可以一次把这3个数据包全部发送完毕。TCP为了保证可靠传输并减少额外的开销(每次发包都要验证),采用了基于流的传输,基于流的传输不认为消息是一条一条的,是无保护消息边界的(保护消息边界:指传输协议把数据当做一条独立的消息在网上传输,接收端一次只能接受一条独立的消息)。原创 2023-07-27 23:18:01 · 196 阅读 · 0 评论 -
TCP/UDP的首部
我们知道,TCP报文段的数据部分,至少要加上40字节的首部(TCP首部20字节和IP首部20字节,这里还没有考虑首部中的可选部分)才能组装成一个IP数据报。设想在极端情况下,当TCP报文段只含有1字节的数据时,在IP层传输的数据报的开销至少有40字节(包括TCP报文段的首部和IP数据报的首部)。为了使接收方能够把新的报文段和迟到很久的报文段区分开,则可以在报文段中加上这种时间戳。由于IP数据报所经历的路径是动态变化的,因此在这条路径上确定的不需要的分片的MSS,如果改走另一条路径就可能需要进行分片。原创 2023-07-25 23:02:11 · 1797 阅读 · 0 评论 -
TCP和UDP的区别
操作系统有能力根据接受的报文的IP字段里面的协议部分判断这个报文是什么报文,就是说,系统读数据的时候还没有读到上层报文(TCP/UDP)的时候已经知道上层是什么报文了,直接交给相关的内核进程或协议栈处理就可以了。TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。原创 2023-07-25 22:59:00 · 260 阅读 · 0 评论 -
TCP长连接和短连接
TCP在真正的读写操作之前,server 与 client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立通过三次握手,释放则需要四次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。原创 2023-07-25 22:56:43 · 643 阅读 · 0 评论 -
建立TCP连接的各个系统调用
返回的是一个描述符。socket()对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。,但没有一个具体的地址。如果想要给它赋值一个地址,就必须调用bind()函数,否则当调用connect()、listen()时系统会自动随机分配一个端口。原创 2023-07-25 22:54:12 · 515 阅读 · 0 评论 -
传输层协议总览
传输层安全性协议(Transport Layer Security,缩写:TLS)及其前身安全套接层(Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。TLS协议采用主从式架构模型,用于在两个应用程序间透过网络创建起安全的连线,防止在交换数据时受到窃听及篡改。、TFTP(简单文件传输协议)、SNMP(简单网络管理协议)。原创 2023-07-23 22:16:35 · 310 阅读 · 0 评论 -
DNS协议详解
DNS 协议是一个应用层协议,它建立在 UDP 或 TCP 协议之上,默认使用 53 号端口。该协议的功能就是将人类可读的域名 (如,www.qq.com) 转换为机器可读的 IP 地址(如,119.147.15.13)。DNS协议默认通过 UDP 协议进行通讯,但是由于广域网中不适合传输过大的 UDP 数据包,因此规定当报文长度超过了 512 字节时,应转换为使用 TCP 协议进行数据传输。所以,DNS 协议是少有的既可以用 UDP 协议,又可以用 TCP 协议作为底层协议的应用层协议。原创 2023-07-23 22:11:12 · 724 阅读 · 0 评论 -
HTTP1、 HTTP2、HTTP3 区别
如上图所示,SPDY位于HTTP之下,TCP和SSL之上,这样可以轻松兼容老版本的HTTP协议(将HTTP1.x的内容封装成一种新的frame格式),同时可以使用已有的SSL功能。所以,所谓QUIC的0RTT是指在建立连接之后,后续发送数据都不需要增加额外的RTT时间,最开始的握手还是需要1RTT的时间消耗的。HTTP/1.1在传输数据时,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份,这在一定程度上无法保证数据的安全性。多个帧之间可以乱序发送,根据帧首部的流标识可以重新组装。原创 2023-07-23 21:54:04 · 345 阅读 · 0 评论 -
RTT(Round-Trip Time)
其中,前面两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化。所以RTT的变化在一定程度上反映了网络拥塞程度的变化。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。往返延时(RTT)由三个部分决定:即。原创 2023-07-23 21:51:47 · 818 阅读 · 0 评论 -
HTTPS连接过程中的中间人攻击
https协议就是http+ssl/tls协议,如下图所示为其连接过程:HTTPS连接的整个工程如下:https也不是绝对安全的,中间人可以获取到客户端与服务器之间所有的通信内容,如下图所示为中间人劫持攻击:原创 2023-07-23 20:56:32 · 858 阅读 · 1 评论 -
HTTPS安全套接字层超文本传输协议
HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。原创 2023-07-23 20:37:39 · 1000 阅读 · 0 评论 -
HTTP超本文传输协议
HTTP(HyperText Transfer Protocol)即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础,它允许将HTML(超文本标记语言)文档从Web服务器传送到Web浏览器。HTTP基于TCP/IP通信协议来传递数据。HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。HTTP默认端口号为80。原创 2023-07-23 20:23:34 · 867 阅读 · 0 评论 -
ip、子网掩码、网关、默认网关
将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下:做子网划分后的IP地址:网络号+子网号+子网主机号,举个例子:192.168.1.100/25,其子网掩码表示:255.255.255.128,意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。原创 2023-07-13 19:32:22 · 11737 阅读 · 0 评论