Linux网络:HTTP协议 零、前言 HTTP协议 1、认识URL 2、urlencode和urldecode 3、HTTP协议格式 1)HTTP请求 2)HTTP响应 4、HTTP的方法 5、HTTP...的状态码 6、HTTP常见的Header 7、Cookie和Session 零、前言 在此之前我们对网络套接字编程有了一定的基础和了解,接下来我们将自顶向下学习Linux网络分层协议栈,透过对协议栈的深入学习从而加深我们对网络的理解...HTTP协议 概念及介绍: HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议,是一个简单的请求-响应协议,HTTP通常运行在TCP之上 在编写网络通信代码时...,进行网络数据传输时需要主动确定服务端的ip和port 常用的服务与端口号之间的对应关系都是明确的,所以使用时不要指明该协议对应的端口号的,而URL中也通常省略服务器的端口号 带层次的文件路径...,而不叫做文本传输协议,就是因为有很多资源实际并不是普通的文本资源 从这里的路径分隔符,我们可以分辨服务器的平台:Linux的路径分隔符是/,Windows的路径分隔符是\ 查询字符串 用于获取资源时
HTTPS 零、前言 一、HTTPS协议 二、加密方式 三、中间人攻击 四、PKI 五、数字签名技术 零、前言 本章是继HTTP协议后的一篇关于HTTPS协议的拓展 一、HTTPS协议 概念及介绍...: HTTP请求无论是用GET方法还是POST都是不安全的,使用HTTP协议传输的数据都是在网络里面裸奔(可以通过抓包工具抓到) HTTPS是身披SSL外壳的HTTP,是一种通过计算机网络进行安全通信的传输协议...采用公钥和私钥来的加密方法,用公钥进行加密,用私钥进行解密,这种加密方法称为非对称加密(公钥是进行公开的,私钥是自己进行私有的) 示图: 注意: 在数据传输的过程中,使用对称加密解密比非对称加密解密的网络通信效率高...但双方要进行对称加密通信,就需要双方进行协商秘钥:如果进行协商秘钥时,使用明文进行协商的话就没有进行加密的必要了;而对协商秘钥的内容进行加密也不太适合,毕竟对方没有拿到秘钥无法进行解密 所以要高效安全的网络通信...公钥只是一串数字,需要有一种手段去认证公钥的真正主人,解决方案就是PKI 公开密钥算法中,所有的网络通信都会存在中间人攻击,这是务必要记住的一点,在HTTPS协议中必须引入PKI技术解决身份验证的问题,
文章目录 零、前言 一、网络层 理解路由选择 二、IP协议 三、网段划分 四、IP地址数量限制 五、私有和公网IP地址 NAT技术 六、路由 零、前言 本章主要讲解学习网络层的作用, 深入理解IP协议的基本原理...不同网络有不同的网络层协议和地址规范,不同网络有不同的设计规范,属于不同的组织来管理,必须通过授权,并由专门的协议来负责网络间的通信 如果只是同一局域网内的各个计算机之间的通信,单靠物理层和数据链路层就可以建立通信链路完成用户间的数据通信...,但要扩大应用范围,连接不同的局域子网,就需要借助网络层处理各个网络子网的协议,从而进行计算机的网络互连,所以网络层在 TCP/IP 协议体系中叫网际互连层 网络层的主要作用: 屏蔽网络差异,提供透明传输...这个NSAP就是由对应网络所运行的网络层通信协议来定义的,在目前最常见的TCP/IP协议网络中,这个协议就是IP协议,对应的NSAP就是IP地址 在数据链路层中传输的是一个个以许多字节为单位的帧,在每个帧的帧头都有源节点的...即使备置两台 NAT 做容灾备份,TCP 连接还是会被断开 六、路由 概念及介绍: 数据的发送和转发就是在复杂的网络结构中, 找出一条通往终点的路线 路由的过程, 就是这样一跳一跳(Hop by
完成数据交换后,通信双方必须断开连接,同时释放连接所占用的网络资源。 在讲它们的区别之前,我们需要了解一下TCP协议全双工的特点 TCP协议属于传输层中的协议,传输层由操作系统管理。...在建立连接后,操作系统会为通信双方在内核中创建相应的数据结构和读写缓冲区,通信双方的内核中都有发送缓冲区和接收缓冲区。...3、超时重传机制 对于超过时间限制但未收到应答的报文,TCP协议会重新传输;这也就决定了对已经发送到网络中的数据报的数据,我们不能立即丢弃,应该再保存一段时间,以防报文在传输过程中出现数据丢失的情况。...Linux中(BSD Unix和Windows也是如此), 超时以500ms为一个单位进行控制, 每次判定超时重发的超时 时间都是500ms的整数倍....累计到一定的重传次数, TCP认为网络或者对端主机出现异常, 强制关闭连接 4、TCP报头结构 1、16位端口号 告知主机该报文来着哪里【16位源端口号】以及要交给上层哪一个协议或者应用程序【16
Linux网络-MAC协议 零、前言 一、数据链路层 二、以太网协议 1、认识以太网 2、以太网原理 3、以太网格式 4、MAC地址 5、认识MTU 三、ARP协议 四、RARP协议 零、前言 本章主要讲解...Linux网络中的数据链路层-以太网协议 一、数据链路层 示图: 数据传输大部分是跨网段进行的,而多个主机共同组成一个网段,不同的网段通过路由器连接(路由器同样也是主机),所以数据跨网段传输实质就是数据在主机间传输...网络层IP提供的是跨网络发送数据的能力,而链路层解决的则是两台主机在同网段间的通信问题,即用于两个设备(同一种数据链路节点)之间的数据传递 二、以太网协议 1、认识以太网 “以太网” 不是一种具体的网络...,而是一种技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容 例如规定了网络拓扑结构,访问控制方式,传输速率等,例如以太网中的网线必须使用双绞线,传输速率有10M, 100M, 1000M等...ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议 示图: ARP协议的作用: ARP协议建立了主机 IP地址 和 MAC地址 的映射关系 在网络通讯时,源主机的应用程序知道目的主机的
无论你是对网络技术充满好奇的初学者,还是希望深化Linux网络知识的专业人士,了解并掌握Linux网络协议,都是通往更深层次技术探索的必经之路 本文,正是为了引领你踏入Linux网络协议的神秘殿堂而精心准备...在这里,我们将从网络协议的基本概念出发,逐步揭开Linux网络协议栈的面纱,带你领略TCP/IP协议族的博大精深,以及Linux如何优雅地实现这些协议,确保信息的准确、高效传输 网络协议的学习之路或许充满挑战...这些协议按照功能的不同被划分为不同的层次,形成了分层的网络体系结构。...TCP/IP协议簇就是基于这种分层结构设计的 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇 TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求...通过生动的实例和直观的图表,我们成功地将复杂的网络协议知识转化为易于理解的精华,让你在轻松愉快的氛围中掌握了Linux网络协议的核心要点 然而,这仅仅是学习Linux网络协议的起点。
http协议 请求报文和响应报文都是由以下4部分组成 1.请求行 2.请求头 3.空行 4.消息主体 下图为http请求的报文结构 ? 下图为http响应报文结构 ?...Last-Modified:实体报头用于指示资源的最后修改日期和时间 Expires:实体报头给出响应过期的日期和时间 空行 http协议规定的格式,一般采用\r\n 消息主体 一般用于http的post
8位协议表示网络层的上层的协议类型,ICMP协议是0000 0001,TCP是0000 0110,UDP是0001 0001,通过8位协议就可以将有效载荷向上分用,交付给上层协议了。 2....……等等,而IP协议只负责跨网络发送数据即可。...所以一个路由器桥接的各个网段,都需要有不同的网络号标识。一般路由器的ip,都是网络号.1,但并不是所有网段的路由器ip都是这样配置的,具体取决于网络管理员的设置和具体的网络拓扑结构。...隐藏内部网络拓扑结构:这个作用可以算是捎带的,看一下就好,时间长了肯定也会忘,但上面的功能是NAT技术最大的价值,一定要记住!...当内部设备通过 NAT 路由器访问互联网时,外部网络只能看到 NAT 路由器的公网IP地址,而无法直接获知内部设备的真实IP地址,这样就隐藏了内网的拓扑结构。
Linux网络-UDP/TCP协议详解 零、前言 一、UDP协议 二、TCP协议 1、应答机制 2、序号机制 3、超时重传机制 4、连接管理机制 三次握手 四次挥手 5、理解CLOSE_WAIT状态 6...NFS:网络文件系统 TFTP:简单文件传输协议 DHCP:动态主机配置协议 BOOTP:启动协议(用于无盘设备启动) DNS:域名解析协议 关于可靠性的理解: 计算机中的硬件设备是之间的数据传输是依靠...是面向连接的,在进行TCP通信之前需要先建立连接,保证传输数据的可靠性 面向连接是TCP可靠性的一种,一台机器上可能会存在大量的连接,此时操作系统就需要对这些连接进行管理 建立连接,实际就是在操作系统中用该结构体定义一个结构体变量...,然后填充连接的各种属性字段,最后将其插入到管理连接的数据结构当中即可;断开连接,实际就是将某个连接从管理连接的数据结构当中删除,释放该连接曾经占用的各种资源 示图: 服务端状态转化: [CLOSED...当TCP通信开始后, 网络吞吐量会逐渐上升;随着网络发生拥堵, 吞吐量会立刻下降 拥塞控制,归根结底是TCP协议想尽可能快的把数据传输给对方,但是又要避免给网络造成太大压力的折中方案 如何解决网络拥塞问题
前言 本文主要记录 Linux 内核网络协议栈的运行原理 数据报文的封装与分用 封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议栈中,然后逐一通过 TCP/IP 协议族的每层直到被当作一串比特流送入网络...Linux 内核网络协议栈 协议栈的全景图 协议栈的分层结构 逻辑抽象层级: 物理层:主要提供各种连接的物理设备,如各种网卡,串口卡等。...sock:网络层 sock,定义与协议无关操作,是网络层的统一的结构,传输层在此基础上实现了 inet_sock。 sock_common:最小网络层表示结构体。...inet_sock:表示层结构体,在 sock 上做的扩展,用于在网络层之上表示 inet 协议族的的传输层公共结构体。...NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收服务,然后采用 poll 的方法来轮询数据。
拓扑结构是怎么形成的? 我们常见的办公室大多是一排排的桌子,每个桌子都有网口,一排十几个座位就有十几个网口,一个楼层就会有几十个甚至上百个网口。...首先,这个时候,一个交换机肯定不够用需要多个交换机,交换机之间连接起来,就形成了一个稍微复杂的拓扑结构。 我们来看一下两台交换机的情形,两台交换机连接着三个局域网,每个局域网上都有多台机器。
而Linux网络协议栈则是操作系统处理网络通信的核心,它支持广泛的协议和网络服务,确保数据正确地在网络中传输。...本文将深入分析虚拟网络设备与Linux网络协议栈的关联,揭示它们如何共同工作以支持复杂的网络需求。1....Linux网络协议栈概述 Linux网络协议栈是操作系统的一部分,负责实现各种网络协议,如IP、TCP、UDP等,以及网络数据的发送和接收。...网络协议栈从物理层一直延伸到应用层,处理网络数据包的每一个步骤️。协议栈使得Linux系统能够在不同的网络环境中通信,支持广泛的网络应用。3....虚拟网络设备与Linux网络协议栈的关联 虚拟网络设备与Linux网络协议栈之间的关联,是实现高效网络通信的关键。
协议栈的细节 下面将介绍一些内核网络协议栈中常常涉及到的概念。...sk_buff 结构自身并不存储报文内容,它通过多个指针指向真正的报文内存空间: sk_buff 是一个贯穿整个协议栈层次的结构,在各层间传递时,内核只需要调整 sk_buff 中的指针位置就行。...而这里提到的 socket 和 sock 是内核中的两个数据结构,其中 socket 向上面向用户,而 sock 向下面向协议栈。 如下图所示,这两个结构实际上是一一对应的。...L3->L4 我们知道网络协议栈是分层的,但实际上,具体到实现,内核协议栈的分层只是逻辑上的,本质还是函数调用。...在内核网络子系统初始化时,L4 层协议 (如下面的 TCP 和 UDP) 会被注册: static struct net_protocol tcp_protocol = { ......
1 协议栈的细节 下面将介绍一些内核网络协议栈中常常涉及到的概念。...sk_buff 结构自身并不存储报文内容,它通过多个指针指向真正的报文内存空间: sk_buff 是一个贯穿整个协议栈层次的结构,在各层间传递时,内核只需要调整 sk_buff 中的指针位置就行。...而这里提到的 socket 和 sock 是内核中的两个数据结构,其中 socket 向上面向用户,而 sock 向下面向协议栈。 如下图所示,这两个结构实际上是一一对应的。...L3->L4 我们知道网络协议栈是分层的,但实际上,具体到实现,内核协议栈的分层只是逻辑上的,本质还是函数调用。...在内核网络子系统初始化时,L4 层协议(如下面的 TCP 和 UDP)会被注册: static struct net_protocol tcp_protocol = { ......
网络协议——RPC协议 远程调用协议,用于定义服务之间的接口调用规范标准 1、RPC调用标准 1.1、RPC结构 客户端(服务端):执行逻辑进行本地调用 Stub:对参数进行封装/解封装 RPCRuntime...(SOAP) 与古老的RPC协议相比,双方的SOAP协议没必要完全一致(参数顺序、参数个数等),更加灵活 2.1、Web服务描述语言(WSDL) 也是一个XML,描述了方法名、服务名、端口、请求参数等信息...wsdl”查看 2.2、统一描述、发现和集成协议(UDDI) 以SOAP协议为基础的RPC服务,将自己的wsdl文件放到UDDI中,供服务调用方封装成本地调用 3、RESTful格式的API 全称叫表述性状态转移...,基于HTTP协议的请求通过方法类型(GET、POST等)确定请求动作,数据以JSON文本格式传输 4、二进制类RPC协议 将数据压缩成二进制,减少带宽占用 Hessian2 Dubbo中默认的序列化协议...协议的统一规则,对接受的二进制流进行解析,获得真正的请求 5、跨语言类RPC协议 不同的需求使用不同的编程语言,主要为了适应跨语言调用 Protocal Buffers 使用TLV(Tag,Length
Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计。 Linux内核采用分层结构处理网络数据包。...分层结构与网络协议的结构匹配,既能简化数据包处理流程,又便于扩展和维护。 ...一、内核网络结构 在Linux内核中,对网络部分按照网络协议层、网络设备层、设备驱动功能层和网络媒介层的分层体系设计。 网络驱动功能层主要通过网络驱动程序实现。 ...二、与网络有关的数据结构 内核对网络数据包的处理都是基于sk_buff结构的,该结构是内核网络部分最重要的数据结构。 网络协议栈中各层协议都可以通过对该结构的操作实现本层协议数据的添加或者删除。...三、net_device结构 Linux内核中网络设备最重要的数据结构就是net_device结构了,它是网络驱动程序最重要的部分。
IP 协议报头结构 4位版本 实际上只有两个取值 4 ==> IPv4(主流) 6 ==> IPv6 IPv2,IPv5 在实际中是没有的,可能是理论上/实验室中存在 4位首部长度 IP 协议报头也是变长的...但并非 IP 协议报头最多能携带的数据就是 64KB IP 协议内置了拆包组包机制,单个 IP 数据报确实没法超过 64KB,但是不代表 IP 协议不能传输超过 64KB 的数据。...8位生存时间 描述了一个数据包在网络上存活的最长时间 假设构造一个 IP 数据报,目的 IP 写错了(不存在的 IP 地址),结果这个数据包就在网络上传输了很久,也没有达到目的地。...如果让这样的数据包无限传输的话,就会消耗很多网络资源 这样的数据包存在一个两个还好,要是存在很多呢?...我们发送了四次 32 字节的数据包 几十毫秒,说明网络比较好;上百,上千毫秒说明网络比较卡 咱们初始 TTL 应该是 64,中间经过了 12 个路由器的转发,最终到达了百度 64 这样的 TTL
一、什么是网络协议?网络协议指的是计算机网络中用于数据传输和交换的规则和标准。网络协议规定了数据传输的格式、流程、通信规则和错误处理等内容,保证了网络数据的正常传输和正确交换。...网络协议一般分为不同层次,每一层次负责不同的功能和任务,构成了网络协议栈。常见的网络协议栈有TCP/IP协议栈、OSI参考模型等。...二、TCP/IP协议栈TCP/IP协议栈是最常用的网络协议栈之一,它由传输层的TCP和UDP协议以及网络层的IP协议组成,分别负责不同的功能和任务。...IP协议IP协议是TCP/IP协议栈中的网络层协议,主要负责数据包的传输和路由选择。IP协议定义了数据包的格式和传输规则,将数据包从源主机传输到目标主机,并选择合适的路径和路由进行传输。...UDP协议UDP协议是TCP/IP协议栈中的传输层协议,与TCP协议相比,它不提供可靠传输和流量控制等机制。UDP协议主要用于实时数据传输,如音频、视频等。
HTTP 通常跑在 TCP/IP 协议栈之上,依靠 IP 协议实现寻址和路由、TCP 协议实现可靠数据传输、DNS 协议实现域名查找、SSL/TLS 协议实现安全通信。...DNS 网络请求的第一步 就是域名解析,在应用层 和 CDN 也是在应用层 OSI 模型 对应关系 第一层:物理层,TCP/IP 里无对应; 第二层:数据链路层,对应 TCP/IP 的链接层; 第三层...:网络层,对应 TCP/IP 的网际层; 第四层:传输层,对应 TCP/IP 的传输层; 第五、六、七层:统一对应到 TCP/IP 的应用层。...基本的网络加速外,还提供负载均衡、安全防护、边缘计算、跨运营商网络等功能,能够成倍地“放大”源站服务器的服务能力 IP 主要目的是解决寻址和路由问题 TCP “传输控制协议”,它位于 IP 协议之上,基于...外界既知道代理,也知道客户端; 正向代理:靠近客户端,代表客户端向服务器发送请求; 反向代理:靠近服务器端,代表服务器响应客户端的请求; DNS DNS 的核心系统是一个三层的树状、分布式服务,基本对应域名的结构
网络协议为计算机网络中进行数据交换而建立的规则,标准或约定的集合,它规定了通讯时信息必须采用的格式和这些格式所代表的意义。网络协议使网络上各种设备能够相互交换信息。...TCP/IP协议是internet网络的基础协议,他不是一个协议,而是一个协议族的统称。 TCP/IP协议族包括TCP协议,IP协议和ICMP协议和HTTP协议等。...TCP/IP协议层次结构分成四层,从下到上分别是网络访问层,网际层,传输层,应用层。 物理层对应网卡,其中lo表示回环接口,eth是以太网网络适配器。linux中可以用ifconfig查看。...在一个路由式网络中,源地址主机向目标地址主机发送数据时,IP协议是如何将数据成功发送到目标主机上面的呢。...生存时间是用来防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源. 协议说明数据的内容. 首部校验和因为ttl等的存在,会经常变,但是数据检验和不会变.
领取专属 10元无门槛券
手把手带您无忧上云