tcp/ip详解
文章平均质量分 74
cft56200_ln
格拉德韦尔在《异数》:并非天资超人一等,而是付出了持续不断的努力。只要经过1万小时的锤炼,任何人都能从平凡变成超凡”。要成为某个领域的专家,需要10000小时:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。
展开
-
IP 分片重组三重奏
linux内核协议栈 IPv4分片重组Ⅰ之相关数据结构https://wangquan.blog.csdn.net/article/details/109228044linux内核协议栈 IPv4分片重组Ⅱ之 ip_defrag() 接口https://wangquan.blog.csdn.net/article/details/109235276linux内核协议栈 IPv4分片重组Ⅲ之分片回收和重组https://wangquan.blog.csdn.net/articl..原创 2021-09-03 17:43:35 · 227 阅读 · 0 评论 -
iptables -A INPUT -f -j DROP 丢弃碎片规则无效
参考网址:https://ask.csdn.net/questions/1059469练习iptables的攻击规则,发现如下的命令无效。iptabled -A INPUT -f -j DROP测试win10: 192.168.0.2linux: 192.168.0.5测试1:无分片的报文win10# ping 192.168.0.5 -->可以ping通 测试2:带分片的报文win10# ping 192.168.0.5 -l 3000 -->可以ping通 测试3:转载 2021-09-01 19:32:42 · 1546 阅读 · 0 评论 -
TCP/IP详解 第七章 防火墙和网络地址转换(4) iptables防火墙的raw表
mangle-->nat-->filter举例来说:如果PRROUTING链上,即有mangle表,也有nat表,那么先由mangle处理,然后由nat表处理RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的we转载 2021-06-24 08:52:05 · 572 阅读 · 0 评论 -
I/O 多路复用
这次,我们以最简单 socket 网络模型,一步一步的过度到 I/O 多路复用。但我不会具体细节说到每个系统调用的参数,这方面书上肯定比我说的详细。好了,发车!最基本的 Socket 模型要想客户端和服务器能在网络中通信,那必须得使用 Socket 编程,它是进程间通信里比较特别的方式,特别之处在于它是可以跨主机间通信。Socket 的中文名叫作插口,咋一看还挺迷惑的。事实上,双方要进行网络通信前,各自得创建一个 Socket,这相当于客户端和服务器都开了一个“口子”,双方读取和..转载 2021-03-19 08:52:57 · 370 阅读 · 0 评论 -
TCP/IP详解 第十章用户数据报协议 UDP
1、简介•简单的面向数据报的传输层的协议,不提供差错纠正,队列管理,重复消除,流量控制,拥塞控制功能。提供差错检测。使用它的应用程序需要做许多数据报如何发送和处理的控制工作。2、UDP头部•端口号16位,当不需要返回时,源端口号可以为0•端口号在不同的传输协议之间是独立的,即不同的服务器 可以使用相同的ip地址与端口号,但传输协议不同•长度字段是udp头部和数据的总和,最小值8,排除ipv6 超长数据报情况•校验和,端到端的传输层校验和,覆盖udp头部,数据,一...原创 2020-07-01 11:33:47 · 302 阅读 · 0 评论 -
TCP/IP详解 第八章-ICMP(Internet控制报文)协议
1、引言1.1、ICMP简介IP 协议本身没有提供直接的方法来发现那些发往目的地址失败的IP 数据包。此外, IP 没有提供直接的方式来获取诊断信息(例如哪些路由器在沿途中被使用了或使用一种方法来估计往返时间)。为了解决这些不足之处,将一个特殊的 Internet 控制报文协议( Internet Control Message Protocol,ICMP)[RFC0792][RFC4443]与IP 结合使用,以便提供与IP 协议层配置和IP 数据包处置相关的诊断和控制信息。ICMP 通原创 2020-07-01 11:18:38 · 1887 阅读 · 1 评论 -
TCP/IP详解 第六章 DHCP协议
1、DHCP简介1、DHCP (Dynamic Host Configuration Protocol)即动态主机设置协议。2、前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的端口:67(DHCPv4 server),68(DHCPv4 client), 547 (DHCPv6 server) , 546 (DHCPv6 client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信原创 2020-07-01 10:49:29 · 2590 阅读 · 0 评论 -
TCP/IP详解 第五章 Internet 协议介绍
1、简介•IP是TCP/IP 协议簇中的核心协议。所有TCP、UDP、ICMP和IGMP数据都是通过IP数据报传输。IP提供了一种尽力而为、无连接的数据交付服务。•“尽力而为”的含义是不保证数据报能成功到达目的地。任何可靠性必现由上层协议提供。•“无连接”意味着IP不维护网络单元中数据报相关的任何连接状态信息,每个数据报独立于其他数据报来处理。2、IPV4头部3、IPV6头部4、差异化服务•区分服务(DiffServ)是一个框架和一组标准,用于支持Interne.原创 2020-07-01 10:13:43 · 322 阅读 · 0 评论 -
TCP/IP协议 第四章-ARP协议
1、什么是ARP将IP地址解析为以太网MAC地址(物理地址)的协议1.1、为什么既要有IP地址又要有MAC地址? IP地址表达的是当前机器在网络中的位置,类似于城市名+道路号+门牌号的概念。通过ip层的寻址,我们能知道按何种路径在全世界任意两台Internet上的的机器间传输数据。 MAC地址的设计不携带设备在网络中的位置信息,通常是不变的。 由于历史原因,早期只有链路层和物理层。1.2、ARP协议属于网络层还是链路层?从功能来看,...原创 2020-06-29 17:25:16 · 668 阅读 · 0 评论 -
TCP/IP详解 第三章链路层
1、引言•什么是PDU?协议数据单元•链路层类型有线局域网,城域网,无线局域网等等2、以太网,局域网标准•以太网网络结构1•带冲突检测的载波侦听多路访问(CSMA/CD) 用来检查传输介质的空闲状态,控制站发送数据的时机。•以太网速度10Mbps->100Mbs->1000Mbps->10Gbps•以太网网络结构2•以太网帧格式•虚拟局域网和Qos标签虚拟局域网是一组逻辑上的设备...原创 2020-06-29 17:09:25 · 961 阅读 · 0 评论 -
TCP_IP详解第二章Inernet地址结构
1、表示IP地址–IPv4地址–长32位,采用点分四组或点分十进制来表示。–点分十进制,每个数字都是非负整数,范围是0~255. 165.195.130.107–大多数时候我们更关心它的二进制结构,如下转换: http://www.subnetmask.info/–IPv6地址–长128位,用冒号分八组十六进制表示。–特殊情况的表示 例如IP地址和端口号之间使用冒号。在这种情况下,用括号字母包围IPv6地址–标准化表示法:...原创 2020-06-29 14:48:10 · 900 阅读 · 0 评论 -
TCP/IP详解 第七章 防火墙和网络地址转换(3) iptables防火墙的mangle表
mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。内网的客户机通过Linux主机连入Internet,而Linux主机与Internet连接时有两条线路,它们的网关如图所示。现要求对内网进行策略路由,所有通过TCP协议访问80端口的数据包都从ChinaNet线路出去,而所有访问UDP协议53号端口的数据包都从Cernet线路出去。这是一个策略路由的问题,为了达到目的,在对数据包进行路由前,要先根据数据包的协议和目的端口给数据.转载 2020-06-22 16:22:01 · 442 阅读 · 0 评论 -
为什么 IPv6 难以取代 IPv4
网络层协议承担了分组(Packet)转发和路由选择两大功能,它能够为上层提供在不同主机之间运输分组的职责,IP 协议作为网络层协议,它虽然只能提供无连接的、不可靠的服务,但是它在今天的互联网中起到了极其关键的作用。在一般情况下,当我们想要访问其他主机提供的服务时,都需要通过 IP 地址来访问目标主机,只有拥有了 IP 地址才能在互联网上被其他主机访问。IP 地址就像家庭住址,我们需要保证所有主机 IP 地址的唯一性,这样才能找到正确的主机。作为在 1974 年诞生的 IP 协议[^1],第一个主转载 2020-06-22 10:05:10 · 218 阅读 · 0 评论 -
TCP/IP详解 第十二章(14) TCP 优化数据传输
TCP 可靠性是通过 ACK 确认报文实现的,又依赖滑动窗口提升了发送速度也兼顾了接收方的处理能力。可是,默认的滑动窗口最大值只有 64 KB,不满足当今的高速网络的要求,要想要想提升发送速度必须提升滑动窗口的上限,在 Linux 下是通过设置tcp_window_scaling为 1 做到的,此时最大值可高达 1GB。滑动窗口定义了网络中飞行报文的最大字节数,当它超过带宽时延积时,网络过载,就会发生丢包。而当它小于带宽时延积时,就无法充分利用网络带宽。因此,滑动窗口的设置,...转载 2020-06-17 11:45:00 · 156 阅读 · 0 评论 -
TCP/IP详解 第十二章(13) TCP 四次挥手的优化
主动方的优化主动发起 FIN 报文断开连接的一方,如果迟迟没收到对方的 ACK 回复,则会重传 FIN 报文,重传的次数由tcp_orphan_retries参数决定。当主动方收到 ACK 报文后,连接就进入 FIN_WAIT2 状态,根据关闭的方式不同,优化的方式也不同: 如果这是 close 函数关闭的连接,那么它就是孤儿连接。如果tcp_fin_timeout秒内没有收到对方的 FIN 报文,连接就直接关闭。同时,为了应对孤儿连接占用太多的资源,tcp_max_orpha...转载 2020-06-17 11:42:48 · 249 阅读 · 0 评论 -
TCP/IP详解 第十二章(12) 优化 TCP 三次握手的几个 TCP 参数。
客户端的优化当客户端发起 SYN 包时,可以通过tcp_syn_retries控制其重传的次数。服务端的优化当服务端 SYN 半连接队列溢出后,会导致后续连接被丢弃,可以通过netstat -s观察半连接队列溢出的情况,如果 SYN 半连接队列溢出情况比较严重,可以通过tcp_max_syn_backlog、somaxconn、backlog参数来调整 SYN 半连接队列的大小。服务端回复 SYN+ACK 的重传次数由tcp_synack_retries参数控制。如...转载 2020-06-17 11:40:03 · 825 阅读 · 0 评论 -
TCP/IP详解 第七章 防火墙和网络地址转换(2) iptables防火墙
1、iptables1.1 iptables简介 Netfilter/Iptables(以下简称Iptables)是unix/linux系统自带的一款免费的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入,流出及流经服务器(路由器)的数据包进行精细的控制。 一般认为Iptables工作在OSI七层的二、三、四层。大家可以man iptables 查看相关官网介绍1.2 iptables名词解释 iptables是表(tables)的...原创 2020-06-08 12:11:28 · 330 阅读 · 0 评论 -
TCP/IP详解 第七章 防火墙和网络地址转换(1)
一、引言1、Internet和协议发展初期,仅用于大学和科研机构。处于没人攻击状态。2、20世纪80、90年代,成功的攻击成了家常便饭。为了解决这个问题,引入了防火墙。Ø 了解防火墙l 用一种方法控制互联网中网络流量的流向l 一种能够限制所转发的流量类型的路由器。l 大大缓解了IPv4地址耗尽的问题(NAT,多个范围地址重复使用,IP地址不是全球唯一的,可重复利用)二、包过滤防火墙 Ø 防火墙(Firewall),也称防护墙,是由Check Point创立者Gil...原创 2020-06-08 11:31:38 · 1254 阅读 · 0 评论 -
TCP/IP详解 第十二章(11) 图解网络
推荐一个公众号:图解网络专题小林coding虽然作者有一些笔误,但是写的真心不错硬核!30 张图解 HTTP 常见的面试题https://mp.weixin.qq.com/s/bUy220-ect00N4gnO0697A 探究!一个数据包在网络中的心路历程https://mp.weixin.qq.com/s/iSZp41SRmh5b2bXIvzemIw 听说你 ping 用的很 6 ?给我图解一下 ping 的工作原理!https://mp.weixin.qq.com/s/leE2DgDOl5z..原创 2020-06-05 08:38:04 · 184 阅读 · 0 评论 -
TCP/IP详解 第十二章(8) TCP建立连接
前言不管面试 Java 、C/C++、Python 等开发岗位,TCP的知识点可以说是的必问的了。任 TCP 虐我千百遍,我仍待 TCP 如初恋。遥想小林当年校招时常因TCP面试题被刷,真是又爱又狠….过去不会没关系,今天就让我们来消除这份恐惧,微笑着勇敢的面对它吧!所以小林整理了关于TCP 三次握手和四次挥手的面试题型,跟大家一起探讨探讨。原文:https://mp.weixin.qq.com/s/tH8RFmjrveOmgLvk9hmrkw支持小林02 TCP...转载 2020-06-04 11:38:14 · 372 阅读 · 0 评论 -
TCP/IP详解 第十二章(7) TCP的基本认识
前言不管面试 Java 、C/C++、Python 等开发岗位,TCP的知识点可以说是的必问的了。任 TCP 虐我千百遍,我仍待 TCP 如初恋。遥想小林当年校招时常因TCP面试题被刷,真是又爱又狠….过去不会没关系,今天就让我们来消除这份恐惧,微笑着勇敢的面对它吧!所以小林整理了关于TCP 三次握手和四次挥手的面试题型,跟大家一起探讨探讨。原文:https://mp.weixin.qq.com/s/tH8RFmjrveOmgLvk9hmrkw支持小林01 TCP...转载 2020-06-04 11:31:20 · 176 阅读 · 0 评论 -
TCP/IP详解 第十二章(6) 如何防御 SYN 攻击?
如何防御 SYN 攻击?这里给出几种防御 SYN 攻击的方法: 增大半连接队列; 开启 tcp_syncookies 功能 减少 SYN+ACK 重传次数 方式一:增大半连接队列在前面源码和实验中,得知要想增大半连接队列,我们得知不能只单纯增大 tcp_max_syn_backlog 的值,还需一同增大 somaxconn 和 backlog,也就是增大全连接队列。否则,只单纯增大 tcp_max_syn_backlog 是无效的。增大 tcp_max_syn_.转载 2020-06-04 09:38:16 · 360 阅读 · 0 评论 -
TCP/IP详解 第十二章(5) 什么是syncookies
如果 SYN 半连接队列已满,只能丢弃连接吗?并不是这样,开启 syncookies 功能就可以在不使用 SYN 半连接队列的情况下成功建立连接,在前面我们源码分析也可以看到这点,当开启了 syncookies 功能就不会丢弃连接。syncookies 是这么做的:服务器根据当前状态计算出一个值,放在己方发出的 SYN+ACK 报文中发出,当客户端返回 ACK 报文时,取出该值验证,如果合法,就认为连接建立成功,如下图所示。syncookies 参数主要有以下三个值: 0 值,表..转载 2020-06-04 09:33:37 · 816 阅读 · 0 评论 -
TCP/IP详解 第十二章 (4)TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?
前言网上许多博客针对增大 TCP 半连接队列和全连接队列的方式如下: 增大 TCP 半连接队列方式是增大 tcp_max_syn_backlog; 增大 TCP 全连接队列方式是增大 listen() 函数中的 backlog; 这里先跟大家说下,上面的方式都是不准确的。“你怎么知道不准确?”很简单呀,因为我做了实验和看了 TCP 协议栈的内核源码,发现要增大这两个队列长度,不是简简单单增大某一个参数就可以的。接下来,就会以实战 + 源码分析,带大家解密 TCP 半连转载 2020-06-04 09:29:17 · 319 阅读 · 0 评论 -
TCP/IP详解 第十二章(3) webserver 简介
一、浏览器生成消息——探索之旅路线图器二、浏览器生成消息——主要关键词三、浏览器生成消息——URL的各种格式四、浏览器生成消息——web浏览器解析URL的过程五、浏览器生成消息——HTTP的基本思路六、浏览器生成消息——HTTP的主要方法七、浏览器生成消息——HTTP的消息格式八、浏览器生成消息——HTTP中主要的头字段九、浏览器生成消息——HTTP状态码概要十、浏览器生成消息——HTTP消息示例十一、浏原创 2020-06-03 11:10:56 · 309 阅读 · 0 评论 -
TCP/IP详解 第十二章(2) linux 网络编程
一、Linux网络概述①LINUX网络优势•1.完善的内置网络。和内核结合在一起的网络部分。Ip queue•2.Linux免费提供了大量支持Internet的软件,如wireshark等•3.用户能通过一些linux命令完成内部信息或文件的传输如scp,ftp等•scp openvpncft.tar.gz [email protected]:/home/cft/ •4.远程访问 。如ssh 协议②Linux网络模型 ③网络层协议...原创 2020-06-03 10:12:08 · 732 阅读 · 0 评论 -
TCP/IP详解 第九章 IP组播基础及工作原理
一、寻址模式①寻址模式—概述在计算机网络中,寻址模式是指我们如何寻址网络上的主机的机制。IPv4和IPv6提供几种类型的模式,通过这些模式可以寻址单个主机,可以一次寻址多于一个主机,或者可以寻址最近距离的主机。有些书籍也将寻址模式称作IP网络的数据传输方式②寻址模式—单播在单播寻址模式下,IP地址接是网段中唯一标识。IP数据包包含源IP地址和目标IP地址。主机接口配备有在该网段中唯一的IP地址。网络交换机或路由器在接收到指定到单个主机的单播IP分组时,发送到其连接到...原创 2020-06-02 15:07:12 · 2372 阅读 · 1 评论 -
TCP/IP详解 第十二章(1) TCP传输控制协议
内容介绍:一、TCP的服务1、尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务,TCP提供一种面向连接的,可靠的字节流服务。2、TCP充分实现了数据传输时各种控制功能,可以进行丢包的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在UDP中都没有。此外,TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。...原创 2020-06-02 14:35:32 · 289 阅读 · 0 评论 -
浅析TCP协议中URG和PSH的区别与联系
浅析TCP协议中URG和PSH的区别与联系。URG:(紧急标志位)表示本报文段中发送的数据是否包含紧急数据。URG=1时,表示有紧急数据。后面的16位紧急指针字段只有在URG=1时才有效。URG:(紧急标志位)表示本报文段中发送的数据是否包含紧急数据。URG=1时,表示有紧急数据。后面的16位紧急指针字段只有在URG=1时才有效。以上为TCP的段格式,今天来主要看看图中URG和PSH 这两个标志位的区别和联系:PSH:(急迫标志位)在一个交互程序中,当客户发送一个命令给服务器时,它设置...原创 2020-06-02 14:16:56 · 1482 阅读 · 0 评论 -
TCP、UDP数据包大小的限制
1、概述首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在应用层 它们的关系是 数据帧{IP包{TCP或UDP包{Data}}} 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层...原创 2020-06-02 14:15:23 · 495 阅读 · 0 评论