网络层、网络协议详解

实体层->链接层->网络层->传输层->表示层
实体层:将电脑通过有线/无线的方式连接起来
链接层:ARP协议,发送广播,收到回复mac地址,不是自己的就丢弃
网络层:基于MAC能完成数据传递,是广播的形式,人手一份,效率低,并且得局限在子网络(直接物理连接,相同的子网掩码),不可能全球都是这样传递!其实全球互联网是由多个子网络构成的。必须得有一个方法,能定位子网络,得找到某个电脑MAC地址到底在哪里?网卡做不到。需要一个全新的地址规则来定位电脑——IP地址。一台电脑由IP地址+MAC地址定位,才能互通信息。
IP地址:255.255.255.255
11111111.11111111.11111111.11111111 32位长度
一部分是网络,一部分是主机
不确定部分——由子网掩码AND IP地址——网络+主机——确定互联网上的电脑
IP协议:规定网络地址的协议。
IP也需要自己的描述数据,IP信息——分包序号——就在之前的Data指定20~60字节当成Head——剩下的才是Data
传输层:数据已经能准确的传输到某台电脑,但是电脑上有很多应用程序,你的告诉我,数据是哪个应用程序的?端口(Port):其实是网卡的一个端口,0到65535,0到1023倍系统占用
程序启动时,都是需要监听端口(wcf-tcp—IIS-Core)
传输层完成程序到程序(端口到端口的通信)
UDP协议:又把Data分成Head和Data,Head里面只有一个Port。
特点:简单,高效。只管发送,不管有没有收到。
拓展:默认不带确认机制,但程序员可以自己做确认机制,比TCP效率更高
TCP协议:带确认模式的UDP协议。
特点:三次握手——客户端发送到服务端1----服务端收到需要发个2,此外还发个a,客户端再返回一个B
这样就建立了链接,再开始通信。不主动取消,就是长期链接(当然可能断网)
应用层协议:其实就是把TCP的包里的数据解读一下,就是这里面传输数据的格式
Http:url-httpmethod-httpheader-form
应用层协议:就是解读传递来的字符串是什么格式的

前面四层是做到让一个程序给另外一个程序正确的传递了一个字符串,应用层协议就是用规定字符串的格式和意义的。

【解读】想浏览器输入ke.qq.com,会发生哪些事情?
要在DNS服务器配置下,域名和IP:Port的映射关系
浏览器进程会向DNS这个服务器(IP)发包,使用DNS协议
DNS服务器就返回域名端口给浏览器
浏览器把请求数据按照DNS的格式封包
通过网卡去发包——根据子网掩码计算——不在一个子网就发送到网关
TCP三次握手,建立连接——发包
服务器收到全部的包,排序,拿到全部的字符串信息
按照http协议解析字符串–url-httpmethod-httpheader-form
服务器监听XXX端口——转发到.net core代码,写response,服务器打包成tcp包
按照之前的地址发回

猜你喜欢

转载自blog.csdn.net/qq_33391499/article/details/103395118