计算机网络
文章平均质量分 83
学习使我可乐
这个作者很懒,什么都没留下…
展开
-
HTTPS
几幅图,拿下 HTTPS原创小林coding小林coding1月7日收录于话题#图解网络19个我很早之前写过一篇关于 HTTP 和 HTTPS 的文章,但对于 HTTPS 介绍还不够详细,只讲了比较基础的部分,所以这次我们再来深入一下 HTTPS,用实战抓包的方式,带大家再来窥探一次 HTTPS。对于还不知道对称加密和非对称加密的同学,你先复习我以前的这篇文章「硬核!30 张图解 HTTP 常见的面试题」,本篇文章默认大家已经具备了这些知识。TLS 握手过程HTTP...转载 2021-05-07 22:35:29 · 95 阅读 · 0 评论 -
I/O
SocketCyC201812861#一、I/O 模型一个输入操作通常包括两个阶段:等待数据准备好 从内核向进程复制数据对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。Unix 有五种 I/O 模型:阻塞式 I/O 非阻塞式 I/O I/O 复用(select 和 poll) 信号驱动式 I/O(SIGIO) 异步 I/O(AIO)#阻塞式 I/O...转载 2021-04-03 08:14:05 · 78 阅读 · 0 评论 -
HTTP知识点
HTTPCyC201821447#一 、基础概念#请求和响应报文客户端发送一个请求报文给服务器,服务器根据请求报文中的信息进行处理,并将处理结果放入响应报文中返回给客户端。请求报文结构:第一行是包含了请求方法、URL、协议版本; 接下来的多行都是请求首部 Header,每个首部都有一个首部名称,以及对应的值。 一个空行用来分隔首部和内容主体 Body 最后是请求的内容主体GET http://www.example.com/ HTTP/1.1Accept: text...转载 2021-04-03 08:13:42 · 572 阅读 · 0 评论 -
应用层
计算机网络 - 应用层CyC20189616#域名系统DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每个站点只保留它自己的那部分数据。域名具有层次结构,从上到下依次为:根域名、顶级域名、二级域名。DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数情况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。在两种情况下会使用 TCP 进行传输:...转载 2021-04-03 08:13:13 · 126 阅读 · 0 评论 -
网络层
计算机网络 -CyC201811292#概述因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。与 IP 协议配套使用的还有三个协议:地址解析协议 ARP(Address Resolution Protocol) 网际控制报文协议 ICMP(Internet Control Message Protocol...转载 2021-04-03 08:12:27 · 85 阅读 · 0 评论 -
链路层
计算机网络 - 链路层CyC20189455#基本问题#1. 封装成帧将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。#2. 透明传输透明表示一个实际存在的事物看起来好像不存在一样。帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透...原创 2021-04-03 08:11:43 · 191 阅读 · 0 评论 -
https
二、HTTPS的验证流程这一部分看的比较多,主要归纳了一下,分5条。1)客户端发起一个http请求,连接到服务器的443端口。2)服务端把自己的信息以数字证书的形式返回给客户端(证书内容有密钥公钥,网站地址,证书颁发机构,失效日期等)。证书中有一个公钥来加密信息,私钥由服务器持有。3)验证证书的合法性客户端收到服务器的响应后会先验证证书的合法性(证书中包含的地址与正在访问的地址是否一致,证书是否过期)。4)生成随机密码(RSA签名)如果验证通过,或用...原创 2021-04-03 08:10:34 · 2358 阅读 · 0 评论 -
tcp1
今天聊聊TCP,老规矩,为了更符合读者的思考逻辑,文章依然由问题来组织: 在一个不可靠的网络中,如何做到可靠的传输? TCP的连接到底是啥? “三次握手”做了什么? “四次挥手”做了什么? 丢包重传是怎么做的? 服务器处理不过来了, 你能发慢点吗? 好慢啊,网络卡了? 先补充一点前置知识,我们讨论的TCP,属于TCP/IP模型的传输层(第四层),向下基于IP层,向上支撑了应用层。就像本文的结构一样,这个世界是...转载 2021-04-02 12:17:55 · 195 阅读 · 0 评论 -
TCP 基本认识
TCP 基本认识 TCP 连接建立 TCP 连接断开 Socket 编程 PS:本次文章不涉及 TCP 流量控制、拥塞控制、可靠性传输等方面知识,这些留在下篇哈!正文01 TCP 基本认识瞧瞧 TCP 头格式我们先来看看 TCP 头的格式,标注颜色的表示与本文关联比较大的字段,其他字段不做详细阐述。TCP 头格式序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发...原创 2021-04-02 12:16:23 · 194 阅读 · 0 评论 -
Web 页面请求过程
1. DHCP 配置主机信息 假设主机最开始没有 IP 地址以及其它信息,那么就需要先使用 DHCP 来获取。 主机生成一个 DHCP 请求报文,并将这个报文放入具有目的端口 67 和源端口 68 的 UDP 报文段中。 该报文段则被放入在一个具有广播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 数据报中。 该数据报则被放置在 MAC 帧中,该帧具有目的地址 FF:<zero-width space>FF:&l原创 2021-03-29 17:50:01 · 77 阅读 · 0 评论 -
http
3. 「超文本」HTTP 传输的内容是「超文本」。我们先来理解「文本」,在互联网早期的时候只是简单的字符文字,但现在「文本」。的涵义已经可以扩展为图片、视频、压缩包等,在 HTTP 眼里这些都算做「文本」。再来理解「超文本」,它就是超越了普通文本的文本,它是文字、图片、视频等的混合体最关键有超链接,能从一个超文本跳转到另外一个超文本。HTTP 常见的状态码,有哪些?五大类 HTTP 状态码1xx1xx类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。.原创 2021-03-27 16:03:02 · 220 阅读 · 0 评论 -
http
主要特点1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。4.无状态:HTTP协议是无状态协议。无原创 2021-03-17 22:01:46 · 38 阅读 · 0 评论 -
http请求全过程
当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。对于 google的chrome 的浏览器,他甚至会直接从缓存中把网页展示出来,就是说,你还没有按下 enter,页面就出来了。域名解析如果浏览器曾经访问过该地址,那么该域名的 ip 地址(112.34.112.40)就会形成映射关系保存在 dns 服务器中,同时还缓存在浏览器和 hosts 文件里。当域名解原创 2020-08-04 14:36:18 · 390 阅读 · 0 评论 -
TCP的可靠传输的实现
TCP的可靠传输的实现一、滑动窗口协议“窗口”对应的是一段可以被发送者发送的字节序列,2. “滑动”则是指这段“允许发送的范围”是可以随着发送的过程而变化的,只有当A成功发送了数据,即发送的数据得到了B的确认之后,发送窗口就会在发送缓冲区中按顺序移动,将新的数据包含到窗口中准备发送...原创 2020-08-04 10:46:19 · 113 阅读 · 0 评论 -
计算机网络知识点
计算机网络知识点http请求常见的状态码3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent)选择一项操作,或提供操作列表供请求者选择。 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或HEAD 请求的响应)时,会自动将请求者转到新位置。 302 (临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置原创 2020-08-03 16:45:03 · 172 阅读 · 0 评论 -
IP协议详解之二:深入理解IP路由选择过程(建议认真看,不会的可以留言)
IP路由选择,是思科网络工程师必须要了解的一个基础知识。其实,IP路由并没有大家想的那么复杂。笔者在这篇文章中,将通过一个案例,来帮助大家深入了解IP路由的选择过程。希望这篇文章能够帮助大家扫清IP路由选择上的一些误区。如下图,现在这么一个网络。主机甲与主机乙分别在两个不同的网段上,中间通过路由器进行连接。现在假设主机甲要跟主机乙进行通信,那么主机甲如何才能够找到主机乙的位置呢?笔者现在就通过这个例子,跟大家详细解释IP路由选择的整个过程。在这里,笔者以Cisco的路由器为例进行介绍。[img]http原创 2020-05-16 09:25:59 · 549 阅读 · 0 评论 -
ICMP协议详解
ICMP协议详解ICMP协议是一个网络层协议。一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。所以我们就需要一种协议来完成这样的功能–ICMP协议。ICMP协议的功能ICMP协议的功能主要有:确认IP包是否成功到达目标地址通知在发送过程中IP包被丢弃的原因如下图所示:我们需要注意几点:1.ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议原创 2020-05-13 10:53:37 · 2504 阅读 · 0 评论 -
DNS协议及域名解析过程(每个域名服务器都负责管理下一级域名服务器,保证域名的唯一性)
DNS协议我们之前已经了解过ARP协议。如果说ARP协议是用来将IP地址转换为MAC地址,那么DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。我们都知道,TCP/IP中使用的是IP地址和端口号来确定网络上某一台主机上的某一个程序,不免有人有疑问,为什么不用域名来直接进行通信呢?因为IP地址是固定长度的,IPv4是32位,IPv6是128位,而域名是变长的,不便于计算机处理。IP地址对于用户来说不方便记忆,但域名便于用户使用,例如www.baidu.com这是百度的原创 2020-05-13 08:43:29 · 2434 阅读 · 1 评论 -
UDP协议
报文格式编辑在TCP/IP协议层次模型中,UDP位于IP层之上。应用程序访问UDP层然后使用IP层传送数据报。IP数据包的数据部分即为UDP数据报。IP层的报头指明了源主机和目的主机地址,而UDP层的报头指明了主机上的源端口和目的端口。UDP传输的段(segment)有8个字节的报头和有效载荷字段构成。UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据报长度、校验值。以下将对UDP数据报格式进行简要介绍,具体内容请参照RFC 768 [1] 。端口号UDP协议原创 2020-05-13 07:34:07 · 137 阅读 · 0 评论 -
IP、ICMP、ARP
深入剖析IPv4和IPv6深入剖析IP协议,大部分时间就是深入剖析IP头部协议,随着现在的IPv6马上的普及,我们今天就来详细分析一下IPv4和IPv6的头部。(一)IP协议的功能:(1)寻址和路由;(根据对方的IP地址,寻找最佳路径传输信息);(2)传递服务:① 不可靠(IP协议只是尽自己最大努力去传输数据包),可靠性由上层协议提供(TCP协议);② 无连接;(事先不建立会话);(3)数据包的分片和重组。IPv41.版本号:占四位,就是IP协议的版本,通信双方的IP协议必须要达到一致,IP原创 2020-05-12 17:32:51 · 1764 阅读 · 0 评论 -
TCP和UDP的基本知识(拥塞控制和流量控制)
5)、拥塞控制拥塞控制:防止过多的数据注入到网路中,这样可以使网络中的路由器或链路不至于阻塞。拥塞控制是一个全局性的过程,和流量控制不同,流量控制是点对点的控制。b.拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低1网络传输性能有关的所有因素。与流量控制的区别:流量控制往往是指点对点通信量的控制,是个端到端的问题。流量控制所要做的就是控制发送端发送数据的速率,以便使接收端来得及接收。d.代价:需要获得网络内部流量分布的信息。在实施拥塞控制之前,还需要在结点之间交换信息和各种命令,以便选择控原创 2020-05-12 16:41:56 · 1528 阅读 · 2 评论 -
TCP三次握手
序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0.转载 2020-05-12 14:59:52 · 92 阅读 · 0 评论