TCP/IP
文章平均质量分 86
主要介绍TCP/IP相关知识
却道天凉_好个秋
这个作者很懒,什么都没留下…
展开
-
TCP/IP——从wireshark看TCP(二)
1. TCP重复确认和快速重传当接收方收到乱序数据包时,会发送重复的 ACK,以便告知发送方要重发该数据包,当发送方收到 3 个重复 ACK 时,就会触发快速重传,立刻重发丢失数据包。TCP 重复确认和快速重传的一个案例,用 Wireshark 分析,显示如下:数据包 1 期望的下一个数据包 Seq 是 1,但是数据包 2 发送的 Seq 却是 10945,说明收到的是乱序数据包,于是回了数据包 3 ,还是同样的 Seq = 1,Ack = 1,这表明是重复的 ACK; 数据包 4..转载 2021-07-19 20:14:34 · 1203 阅读 · 0 评论 -
TCP/IP——从wireshark看TCP(一)
1. TCP三次握手和四次挥手本次例子,我们将要访问的 http://192.168.3.200 服务端。在终端一用 tcpdump 命令抓取数据包:接着,在终端二执行下面的 curl 命令:最后,回到终端一,按下 Ctrl+C 停止 tcpdump,并把得到的 http.pcap 取出到电脑。使用 Wireshark 打开 http.pcap 后,你就可以在 Wireshark 中,看到如下的界面:我们都知道 HTTP 是基于 TCP 协议进行传输的,那么:最...转载 2021-07-18 21:14:49 · 5148 阅读 · 0 评论 -
TCP/IP——tcp性能提升(三):传输数据性能优化
前言TCP 连接是由内核维护的,内核会为每个连接建立内存缓冲区:如果连接的内存配置过小,就无法充分使用网络带宽,TCP 传输效率就会降低; 如果连接的内存配置过大,很容易把服务器资源耗尽,这样就会导致新连接无法建立;1. 滑动窗口影响传输速度TCP 会保证每一个报文都能够抵达对方,它的机制是这样:报文发出去后,必须接收到对方返回的确认报文 ACK,如果迟迟未收到,就会超时重发该报文,直到收到对方的 ACK 为止。所以,TCP 报文发出去后,并不会立马从内存中删除,因为重传时还需要用到它。转载 2021-07-18 14:28:47 · 8304 阅读 · 0 评论 -
TCP/IP——tcp性能提升(二):四次挥手优化
前言客户端和服务端双方都可以主动断开连接,通常先关闭连接的一方称为主动方,后关闭连接的一方称为被动方。可以看到,四次挥手过程只涉及了两种报文,分别是 FIN 和 ACK:FIN 就是结束连接的意思,谁发出 FIN 报文,就表示它将不会再发送任何数据,关闭这一方向上的传输通道; ACK 就是确认的意思,用来通知对方:你方的发送通道已经关闭;四次挥手的过程:当主动方关闭连接时,会发送 FIN 报文,此时发送方的 TCP 连接将从 ESTABLISHED 变成 FIN_WAIT1。 当.转载 2021-07-16 23:10:44 · 414 阅读 · 0 评论 -
TCP/IP——tcp性能提升(一):三次握手优化
前言TCP 是面向连接的、可靠的、双向传输的传输层通信协议,所以在传输数据之前需要经过三次握手才能建立连接。那么,三次握手的过程在一个 HTTP 请求的平均时间占比 10% 以上,在网络状态不佳、高并发或者遭遇 SYN 攻击等场景中,如果不能有效正确的调节三次握手中的参数,就会对性能产生很多的影响。客户端和服务端都可以针对三次握手优化性能。主动发起连接的客户端优化相对简单些,而服务端需要监听端口,属于被动连接方,其间保持许多的中间状态,优化方法相对复杂一些。1. 客户端优化三次.转载 2021-07-15 20:40:48 · 735 阅读 · 0 评论 -
TCP/IP——HTTPS
1. HTTP和HTTPS的区别1)HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。——安全性2)HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。——可操作性3)HTTP 的端口号是 80,HTTPS 的端口号是转载 2021-02-16 14:20:37 · 462 阅读 · 0 评论 -
TCP/IP——HTTP
1. HTTP基础1.1 HTTP是什么?HTTP (HyperTextTransferProtocol)是超文本传输协议。1)协议:HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范(两个以上的参与者),以及相关的各种控制和错误处理方式(行为约定和规范)。2)传输:HTTP 是一个在计算机世界里专门用来在两点之间传输数据的约定和规范。3)超文本:超越了普通文本的文本,它是文字、图片、视频等的混合体,最关键有超链接,能从一个超文本跳转..转载 2021-02-16 13:23:11 · 189 阅读 · 0 评论 -
TCP/IP——IGMP
1. 概念组播地址,也就是 D 类地址,既然是组播,那就说明是只有一组的主机能收到数据包,不在一组的主机不能收到数组包,怎么管理是否是在一组呢?那么,就需要IGMP协议了。组播模型IGMP 是因特网组管理协议,工作在主机(组播成员)和最后一跳路由之间,如上图中的蓝色部分。1)IGMP 报文向路由器申请加入和退出组播组,默认情况下路由器是不会转发组播包到连接中的主机,除非主机通过 IGMP 加入到组播组,主机申请加入到组播组时,路由器就会记录 IGMP 路由器表,路由器后续就会转发组播..原创 2021-02-15 11:24:23 · 1266 阅读 · 0 评论 -
TCP/IP——ICMP
1. 简介ICMP 全称是Internet Control Message Protocol,也就是互联网控制报文协议。2.功能ICMP主要的功能包括:1)确认 IP 包是否成功送达目标地址2)报告发送过程中 IP 包被废弃的原因3)改善网络设置在IP通信中如果某个IP包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知。ICMP 目标不可达消息如上图例子,主机A向主机B发送了数据包,由于某种原因,途中的路由器2未能发现主机...原创 2021-02-15 10:55:03 · 382 阅读 · 0 评论 -
TCP/IP——DHCP
DHCP 在生活中我们是很常见的了,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。接下来,我们来看看我们的电脑是如何通过 4 个步骤的过程,获取到 IP 的。DHCP 工作流程先说明一点,DHCP 客户端进程监听的是 68 端口号,DHCP 服务端进程监听的是 67 端口号。这 4 个步骤:客户端首先发起DHCP 发现报文(DHCP DISCOVER)的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的地址,所以使用..转载 2021-02-15 10:25:39 · 740 阅读 · 0 评论 -
TCP/IP——ARP
在传输一个 IP 数据报的时候,确定了源 IP 地址和目标 IP 地址后,就会通过主机「路由表」确定 IP 数据包下一跳。然而,网络层的下一层是数据链路层,所以我们还要知道「下一跳」的 MAC 地址。由于主机的路由表中可以找到下一跳的 IP 地址,所以可以通过ARP 协议,求得下一跳的 MAC 地址。1. ARP的工作流程简单地说,ARP 是借助ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的。ARP 广播主机会通过广播发送 ARP 请求,这个包中包含了想要知道的 MAC..原创 2021-02-15 10:03:37 · 243 阅读 · 0 评论 -
TCP/IP——DNS
我们在上网的时候,通常使用的方式是域名,而不是 IP 地址,因为域名方便人类记忆。那么实现这一技术的就是DNS 域名解析,DNS 可以将域名网址自动转换为具体的 IP 地址。1. 域名的层级关系DNS 中的域名都是用句点来分隔的,比如www.server.com,这里的句点代表了不同层次之间的界限。在域名中,越靠右的位置表示其层级越高。根域是在最顶层,它的下一层就是 com 顶级域,再下面是 server.com。所以域名的层级关系类似一个树状结构:根 DNS 服务器 顶级..转载 2021-02-15 09:48:38 · 451 阅读 · 0 评论 -
TCP/IP——重传机制
TCP 实现可靠传输的方式之一,是通过序列号与确认应答。在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。正常的数据传输但在错综复杂的网络,并不一定能如上图那么顺利能正常的数据传输,万一数据在传输过程中丢失了呢?所以 TCP 针对数据包丢失的情况,会用重传机制解决。接下来说说常见的重传机制:超时重传 快速重传 SACK D-SACK1. 超时重传重传机制的其中一个方式,就是在发送数据时,设定一个定时器,当超过指定的时间后,没有转载 2021-02-14 15:29:52 · 1395 阅读 · 0 评论 -
TCP/IP——流量控制
1. 流量控制的例子发送方不能无脑的发数据给接收方,要考虑接收方处理能力。如果一直无脑的发数据给对方,但对方处理不过来,那么就会导致触发重发机制,从而导致网络流量的无端的浪费。为了解决这种现象发生,TCP 提供一种机制可以让「发送方」根据「接收方」的实际接收能力控制发送的数据量,这就是所谓的流量控制。下面举个栗子,为了简单起见,假设以下场景:客户端是接收方,服务端是发送方 假设接收窗口和发送窗口相同,都为200 假设两个设备在整个传输过程中都保持相同的窗口大小,不受外界影响流量控.转载 2021-02-13 11:10:40 · 1174 阅读 · 0 评论 -
TCP/IP——拥塞控制
1. 为什么需要拥塞控制?流量控制是避免「发送方」的数据填满「接收方」的缓存,但是并不知道网络的中发生了什么。一般来说,计算机网络都处在一个共享的环境。因此也有可能会因为其他主机之间的通信使得网络拥堵。在网络出现拥堵时,如果继续发送大量数据包,可能会导致数据包时延、丢失等,这时 TCP 就会重传数据,但是一重传就会导致网络的负担更重,于是会导致更大的延迟以及更多的丢包,这个情况就会进入恶性循环被不断地放大….所以,TCP 不能忽略网络上发生的事,它被设计成一个无私的协议,当网络发送拥塞时,T转载 2021-02-10 11:26:29 · 546 阅读 · 0 评论 -
TCP/IP——滑动窗口
1. 引入滑动窗口的原因TCP传输的特点:TCP每发送一次数据,都要进行一次应答,只有当上一个数据包接收到应答了,才能发送下一个。这样的传输方式有一个缺点:数据包的往返时间越长,通信的效率就越低。2. 滑动窗口的概念为解决这个问题,TCP 引入了窗口这个概念。即使在往返时间较长的情况下,它也不会降低网络通信的效率。那么有了窗口,就可以指定窗口大小,窗口大小就是指无需等待确认应答,而可以继续发送数据的最大值。窗口的实现实际上是操作系统开辟的一个缓存空间,发送方主机在等到确认应答返回转载 2021-02-10 10:52:52 · 496 阅读 · 0 评论 -
最大报文段长度——MSS
1. 概念MSS(Maximum Segment Size,最大报文长度),是TCP协议定义的一个选项,MSS选项用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度在以太网环境下,MSS=MTU-20字节TCP报头-20字节IP报头,MSS值一般就是1500-20-20=1460字节。2. MSS的确定MSS值只会出现在SYN报文中,即SYN=1时,才会有MSS字段值。如图所示,服务器访问某网站时进行TCP的三次握手。1)首先客户端会发送一个SYN请求报原创 2021-02-09 11:43:17 · 11369 阅读 · 0 评论 -
TCP交互数据流
1. 交互式输入首先来观察在一个rlogin连接上键入一个交互命令时所产生的数据流。许多TCP/IP的初学者很吃惊地发现通常每一个交互按键都会产生一个数据分组,也就是说每次从客户传到服务器的是一个字节的按键(而不是每次一行!)。而且rlogin需要远程系统(服务器)回显我们(客户)键入的字符。这样就会产生4个报文段:1)来自客户的交互按键2)来自服务器的按键确认3)来自服务器的按键回显4)来自客户的按键回显确认图1表示了这个数据流:然而,一般可以将报文段2和3进行合并:...原创 2021-02-06 10:48:43 · 441 阅读 · 0 评论 -
TCP连接的建立与终止
1. TCP的建立设主机B运行一个服务器进程,它先发出一个被动打开命令,告诉它的TCP要准备接收客户进程的连续请求,然后服务进程就处于听的状态。不断检测是否有客户进程发起连续请求,如有,作出响应。设客户进程运行在主机A中,他先向自己的TCP发出主动打开的命令,表明要向某个IP地址的某个端口建立运输连接,过程如下: 1)主机A的TCP向主机B的TCP发出连接请求报文段,其首部中的同步比特SYN应置1,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的序号是x。 2)主...原创 2021-01-31 12:22:20 · 534 阅读 · 0 评论 -
TCP头部详解
1. TCP的定义TCP提供一种面向连接的、可靠的字节流服务。面向连接: 两个使用TCP的应用(通常是一个客户和一个服务)在彼此交换数据之前必须建立一个TCP连接。TCP提供可靠性的方式:1)应用数据被分割成TCP认为最适合发送的数据块;2)当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;3)当TCP收到来自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;(Delayed-ACK)原创 2021-01-30 12:29:55 · 15288 阅读 · 2 评论 -
TCP/IP 应用层协议端口总结
常用的协议和端口号:常用服务 协议 端口号 POP3 TCP 110 IMAP TCP 143 SMTP(简单邮件传输协议) TCP 25 Telnet(远程登陆) TCP 23 终端服务 TCP 3389 PPTP TCP 1723 HTTP(超文本传输协议) TCP 80 FTP(控制)(文本传输协议) TCP 21 FTP(数据) TCP 20原创 2021-01-30 11:02:59 · 534 阅读 · 0 评论 -
ftp命令总结
1. 连接ftp服务器ftp 192.168.2.107 (192.168.2.107为服务器的IP)2. 用户名和密码安装ftp服务器时会添加ftp用户的用户名和密码,对应输入即可。3. 展示文件列表ls4. 切换目录cd /home (切换至服务器的home目录下)5. 文件下载5.1 getget gcc-10.2.0.tar.gz D:/1.tar.gz (gcc-10.2.0.tar.gz为服务器上某路径的文件,前提是已切换至该路径; D:/1.tar.gz原创 2021-01-02 13:41:11 · 1136 阅读 · 0 评论