博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络协议
阅读量:2072 次
发布时间:2019-04-29

本文共 2281 字,大约阅读时间需要 7 分钟。

1.输入一个url到浏览器页面展示都经历了哪些过程

1.输入网址

2.缓存解析
浏览器缓存–> 操作系统缓存–> 本地host文件 --> 路由器缓存–> ISP DNS缓存 --> 顶级DNS服务器/根DNS服务器
有从缓存当中显示页面,然后没有那就进行步骤三
3.域名解析
域名到IP地址的转换过程,由DNS服务器完成,解析后可以获取域名相应的IP地址
4.建立TCP连接
拿到域名对应的IP地址之后,浏览器会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx等)80端口发起TCP的连接请求。这个连接请求到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终到达WEB程序,最终建立了TCP/IP的连接
5.浏览器向服务器发起了http请求
一个典型的 http request header 一般需要包括请求的方法,例如 GET 或者 POST 等,不常用的还有 PUT 和 DELETE 、HEAD、OPTION以及 TRACE 方法,一般的浏览器只能发起 GET 或者 POST 请求
6.服务器收到浏览器发送的请求信息,返回一个响应头和一个响应体
后端从在固定的端口接收到TCP报文开始,它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用
7.浏览器收到服务器发送的响应头和响应体,进行客户端渲染,生成Dom树、解析css样式、js交互

2.协议分层

应用层:TFTP(文件传输)、HTTP、DNS(域名解析)、SMTP

传输层:TCP、UDP、HTTPS
网络层:IP
物理层:IEEE

3.TCP协议

TCP特性

面向连接,可靠的字节流服务,并不是100%可靠,而是数据的可靠传送和
故障的可靠通知
1.只能有两方进行通信,不能用于广播和多播
2.使用校验,确认,和重传机制来保证可靠传输
3.TCP 给数据分节进行排序,并使用累积确认来 保证数据的顺序不变和非重复
4.使用滑动窗口机制实现流量控制,通过动态改变窗口的大小来进行拥塞控制

连接过程:三次握手

第一次:发送请求到服务器,等待服务器确认(SYN=1, seq=x)

SYN为1的包,指明端口,初始序列x,保存在包头的序列号里(SYN)
第二次:服务器接收请求,并给客户端发送确认消息(SYN=1, ACK=1, seq=y, ACKnum=x+1)
服务器发出包应答,SYN=1,ACK=1,服务器端选择自己 ISN 序列号,放到 Seq 域里,同时将确认序号(Acknowledgement Number)设置为客户的 ISN 加1,即X+1。 发送完毕后,服务器端进入 SYN_RCVD 状态。
第三次:客户端确认请求,建立连接(ACK=1,ACKnum=y+1)
客户端再次确认发送包ACK, SYN 标志位为0,ACK 标志位为1,并且把服务器发来 ACK 的序号字段+1,放在确定字段中发送给对方,并且在数据段放写ISN的+1

发送完毕后,客户端进入 ESTABLISHED 状态,当服务器端接收到这个包时,也进入 ESTABLISHED 状态,TCP 握手结束。

4.HTTP协议

HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80

HTTP 是无连接无状态的
HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范
规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:

5.IP协议

IP协议位于TCP/IP协议的第三层——网络层, 与传输层协议相比,网络层的责任是提供点到点(hop by hop)的服务,而传输层(TCP/UDP)则提供端到端(end to end)的服务

点到点传输是把网络通信的线路分为各个(节)点,整个通信链路由一个个(节)点连接起来,信息由发送设备发送到与其直接连接的设备1,然后再由设备1在适时的时候发送到与其直接连接的设备2,以此类推直到接收端
端到端传输即发送端和接收端之间的传输,是属于传输层的。网络通信时需要在这两端之间建立传输信息的链路(通路),该链路可以是单一的传输线路,也可以是很复杂的物理连接(逻辑链接)。一旦连接建立起来了,就可以进行端到端的传输了,传输结束后连接被释放,可以被下一次数据传输使用

概述:

在计算机通信中,为了识别通信对端,必须要有一个类似于地址的识别码进行标识。在数据链路中的 MAC 地址正是用来标识同一个链路中不同计算机的一种识别码。
作为网络层的 IP ,也有这种地址信息,一般叫做 IP 地址。IP 地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址”。因此,在 TCP/IP 通信中所有主机或路由器必须设定自己的 IP 地址。
不论一台主机与哪种数据链路连接,其 IP 地址的形式都保持不变。
IP 地址(IPv4 地址)由32位正整数来表示。IP 地址在计算机内部以二进制方式被处理。然而,由于我们并不习惯于采用二进制方式,我们将32位的 IP 地址以每8位为一组,分成4组,每组以 “.” 隔开,再将每组数转换成十进制数

转载地址:http://ywjmf.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】312-Burst Balloons
查看>>
【LEETCODE】232-Implement Queue using Stacks
查看>>
【LEETCODE】225-Implement Stack using Queues
查看>>
【LEETCODE】155-Min Stack
查看>>
【LEETCODE】20-Valid Parentheses
查看>>
【LEETCODE】290-Word Pattern
查看>>
【LEETCODE】36-Valid Sudoku
查看>>
【LEETCODE】205-Isomorphic Strings
查看>>
【LEETCODE】204-Count Primes
查看>>
【LEETCODE】228-Summary Ranges
查看>>
【LEETCODE】27-Remove Element
查看>>
【LEETCODE】66-Plus One
查看>>
【LEETCODE】26-Remove Duplicates from Sorted Array
查看>>
【LEETCODE】118-Pascal's Triangle
查看>>
【LEETCODE】119-Pascal's Triangle II
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>