网络协议总结

极客时间刘超老师的《趣谈网络协议》学习笔记总结以及相关知识点总结以及一些自己的理解

只有通过网络协议,才能使一大片机器互相协作、共同完成一件事。

协议总结如下图所示:

在这里插入图片描述

引入例子

例子1:用一个下单的例子来展现从应用层到物理层的过程。

(1)首先是输入URL然后根据DNS解析出来IP地址,知道了目标地址以后,浏览器就会开始打包它的请求,对于购物这种需要保密的隐私请求来说,就需要进行加密传输,因而会使用HTTPS协议,当然无论是什么协议,里面都会写明请求的信息。

这一步通过输入网址下单,解释了DNS和https的工作流程

(2)将上一层打包的包通过socket交给tcp进行传输,tcp指定了要收到这个包的应用端口,和发出这个包的浏览器端口(浏览器端口发包给OS,然后OS判断这个包该给那个应用端口)。

这一步主要讲的TCP的功能以及os在这个过程中的工作流程

(3)然后根据ip地址进行包的发送,从本地的ip发送到目的地址的ip(这个发Ip的过程也是os完成的,首先判断这个目的ip是不是本地Ip,如果是就用交换机进行本地通信,不是的话就要先将包发送到网关,然后通过网关发出去,ARP协议在这将网关的ip地址映射为mac地址)

这一步主要解释tcp和arp协议的运作

(4)os再将加上了mac地址的包转发给mac层

最后,网卡将包通过因特网发送出去。

例子2:用西天取经的例子展现从物理层到应用层传送包(http里面的请求)的过程。

(1)在因特网上的包传输过程中到达不同的网关,每个网关所在的路由器都有路由表,如果路由表中有记录到目的地址网关的路由表,怎么走,这种沟通的协议称为路由协议,常用的有 OSPF 和 BGP。

(2)根据路由表到达目的地址所在的网关的路由器。

(3)然后进入局域网,用arp协议寻找目的地址,目标服务器就会回复一个 MAC 地址,然后通过这个 MAC 地址就能找到目标服务器。

目标服务器的动作

(1)目标服务器发现 MAC 地址对上了,取下 MAC 头来,发送给操作系统的网络层。发现 IP 也对上了,就取下 IP 头。IP 头里会写上一层封装的是 TCP 协议,然后将其交给传输层,即 TCP 层。

(2)TCP 层对于收到的每个包,都会有一个回复的包说明收到了。这个回复的包仅仅是 TCP 层的一个说明,即收到之后的回复。如果一直没有收到回复就会重新发送这个包,超时重传机制,不是浏览器这个http请求重发一次,这个超时重传机制是TCP层在不断的闷头重试。

超时重传机制停止条件 1.TCP连接断了; 2.发送端(客户端)收到了报平安的包。

(3)当网络包平安到达 TCP 层之后,TCP 头中有目标端口号,通过这个端口号,可以找到电商网站的进程正在监听这个端口号,假设一个 Tomcat,将这个包发给电商网站。

(4)电商网站得到http包之后,通过RPC告诉相关的进程,然后将结果打包在HTTPS中按以上流程返回到浏览器。


将以上提到的协议分层

应用层协议

下单过程中,应用层中的协议

(1)输入URL(Uniform Resource Locator,统一资源定位器)

(2)DNS(Domain Name System域名系统)或者HTTPDNS(更加精准)

(3)用2查找后得到一个一个ip地址(互联网的门牌号)

(4)知道目的地址后,浏览器开始打包请求,对于普通的浏览请求,往往会使用 HTTP 协议;但是对于购物的请求,往往需要进行加密传输,因而会使用 HTTPS 协议。无论是什么协议,里面都会写明“你要买什么和买多少”。

DNS、HTTP、HTTPS 所在的层我们称为应用层。经过应用层封装后,浏览器会将应用层的包交给下一层去完成,通过 socket 编程来实现。下一层是传输层。

传输层协议

传输层有两种协议,一种是无连接的协议 UDP,一种是面向连接的协议 TCP。

(1)TCP协议:所谓的面向连接就是,TCP 会保证这个包能够到达目的地。如果不能到达,就会重新发送,直至到达。TCP 协议里面会有两个端口,一个是浏览器监听的端口,一个是电商的服务器监听的端口。操作系统往往通过端口来判断,它得到的包应该给哪个进程。

(2)UDP协议:

传输层封装完毕后,浏览器会将包交给操作系统的网络层。

网络层协议

IP协议:源 IP 地址(浏览器)和目标 IP 地址(服务器)。

操作系统既然知道了目标 IP 地址,就开始想如何根据这个门牌号找到目标机器。操作系统往往会判断,这个目标 IP 地址是本地人,还是外地人。如果是本地人,从门牌号就能看出来,但是显然电商网站不在本地,而在遥远的地方。

操作系统知道要离开本地去远方。虽然不知道远方在何处,但是可以这样类比一下:如果去国外要去海关,去外地就要去网关。而操作系统启动的时候,就会被 DHCP(Dynamic host configuration protocol动态主机配置协议) 协议配置 IP 地址,以及默认的网关的 IP 地址 192.168.1.1。

数据链路协议

操作系统如何将 IP 地址发给网关呢?在本地通信基本靠吼,于是操作系统大吼一声,谁是 192.168.1.1 啊?网关会回答它,我就是,我的本地地址在村东头。这个本地地址就是 MAC 地址,而大吼的那一声是 ARP 协议

arp(Address Resolution Protocol)协议:在TCP/IP模型中属于IP层(网络层),在OSI模型中属于链路层。arp协议即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。它可以解决同一个局域网内主机或路由器的IP地址和MAC地址的映射问题。

MAC层

操作系统将 IP 包交给了下一层,也就是 MAC 层。网卡再将包发出去。由于这个包里面是有 MAC 地址的,因而它能够到达网关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值