网络编程-五层协议

操作系统 : 操作连接计算机硬件和计算机软件的纽带

C/S   B/S系统

C : client       客户端

B : browser   浏览器

S : server      服务端

C/S : 基于客户端和服务端的架构

  硬件C/S架构 : 打印机

  软件C/S架构 : qq,微信....

B/S : 特殊的C/S架构   浏览器和服务端的通讯

网络通信 : 从一台计算机的一个软件将一个数据(文件,视频)发送给另一台计算机的这个软件上   是软件与软件的通讯

网络通信原理:

1.一系列物理连接介质

2.地址(ip,端口号),确定对方软件的位置

3.一系列互联网协议

五层协议

应用层

传输层

网络层

数据链路层

物理层

 

物理层

物理连接介质(光纤,双绞线)  发送电信号 高低电频

数据链路层

物理层只是单纯的发送一些二进制的010101010,数据链路层主要是对数据进行分组

统一标准:以太网协议

规定数据分为两部分: 1,数据头 18个字节

              源地址6个字节

              目标地址6个字节

              数据类型6个字节

            2,数据

一组电信号叫做数据报,也叫一帧

数据头+数据部分,最短64个字节,最长1518个字节,超过最大限制就分片发送

网卡:mac地址   计算机的唯一标识,相当于身份证,计算机出厂时就有

12位 16进制   例 :40-8D-5C-93-F1-DE   前六位:厂商编号,   后六位:流水线号

计算机通信方式:广播

理论上,有了mac地址,加上广播的方式,全世界所有的计算机都可以通信了,实际上不行,会出现广播风暴,效率低,工作量太大

规定 : mac + 广播的形式只能在局域网中实行

原则上,同一个局域网就是通过 源mac地址 + 目标mac地址 + 数据类型 +广播  可以将数据进行传输

交换机有一个mac与网口的对照表(mac地址自主学习):

计算机在第一次连接交换机的时候,是不知道计算机的mac的

计算机第一次发送数据给目标mac,不知道目标mac是多少,通过IP地址 + ARP协议计算出对方的mac地址:

第一次发送的IP地址为 192.168.10.24

通过广播,在同一个局域网内广播一个数据:

  单播 : 单独发送给交换机

  广播 : 交换机群发给所连接的所有计算机,找到符合的mac地址,回传数据

    (源mac地址 40-8D-5C-93-F1-DE ,对方mac FF-FF-FF-FF-FF-FF)(源ip :192.168.10.22  对方ip 192.168.10.24)

路由器 : 家用路由器     企业级路由器

内网:DHCP协议       自动分配IP地址,子网掩码,网关ip地址

同一个局域网内的所有计算机的ip地址一定不同,不同局域网内的计算机ip可以相同

内网计算机的ip都是由路由器虚拟出来的

外网:连接外网,收发数据

DNS:转换服务器与域名

同一个局域网之内:

第一次方式数据,需要广播的形式,获取对方的mac地址,将mac地址与网口写入交换机的对照表

第二次发送数据(计算机个网口没更换):不通过关闭,而是直接从mac对照表寻找对方的地址,直接进行发送

网络层

确定局域网的位置

ip协议 : 寻找对方局域网的位置

ip + mac +广播  就能确定世界上任何一个计算机的位置

ipv4

四点分十进制 : 0~255.0~255.0~255.0

同一个局域网内,所有计算机的IP地址绝对不同

子网掩码: 

C类 : 255.255.255.0    一般都为C类

B类 : 255.255.0.0

A类 : 255.0.0.0

IP + 子网掩码可以确定网关的地址

    172.16.10.1: 10101100.00010000.00001010.00000001
255.255.255.0: 11111111.11111111.11111111.00000000

一一对照,都为1时取1,否则取0,所以前三个与ip地址相同:

10101100.00010000.00001010.00000000

此IP网段: 172.16.10.0

如果子网掩码都是C类,一个局域网可以分配多少个ip?

一个网段:最多能有256个IP: 0 不能用, 255 不能用,254 也是特殊的功能,所以总共有253个IP可以分配

端口 + IP + 子网掩码 + mac + 广播的形式就可以确定世界上任何一个计算机软件的位置.

精简一下: ip协议和ARP 协议可以获取我的mac地址,端口和ip地址 就可以确定世界上任何一个计算机软件的位置.

总结:
通过计算机发送数据,我要先获取对方的ip和子网掩码

去判断是不是同一个局域网:

如果是同一个局域网: 通过IP + ARP协议 获取mac发送数据.

如果不是同一个局域网:网关(路由协议)一层一层的发送.

传输层: 

端口协议   每一个软件都有固定的端口

0--65535   1~1024系统占用    1024~8000有固定的软件占用   设置端口基本都在8000以后

端口 + ip + mac + 广播   就能确定世界上任何一个计算机的软件的位置

应用层

每个软件对于数据有不同的自制协议   ftp,www....

 

基本流程:

从自己计算机的qq软件上发送信息给好友:'今晚吃鸡'

1.应用层:qq自动将信息封装{'content':今晚吃鸡} 软件自己操作

操作系统:

2.传输层: 确定软件在计算机中的位置 8000 | {'content': '今晚吃鸡'}

3.网络层:确定计算机在哪个局域网 ip:192.168.1.12 | 8000 | {'content': '今晚吃鸡'}

4.数据链路层:确定计算机在局域网中的地址 源mac地址,目标mac地址 数据类型 | ip:192.168.1.12 | 8000 | {'content': '今晚吃鸡'}

5.物理层:网线将数据以电信号的形式传输出去

 

访问京东的具体流程:

1.在浏览器输入网址www.jd.com 访问DNS浏览器,获取其ip地址

2.本机的操作系统:判断你访问的ip地址和你的ip地址是否在同一网段

分支1:

3.如果在同一网段,以单播的形式将请求发送给交换机,

然后交换机再以广播的形式发送给其他的交换机,所有的交换机再以广播的形式发送给其他计算机

分支2:

3.不在同一网段,你的请求会以单播的形式发送给交换机,再发给路由

4.路由利用NAT技术将计算机ip置换成网段

静态路由:将数据从路由传给京东的路由

路由协议:利用算法计算出达到目标路由的最短路径

5.数据发送到京东的路由中,通过端口映射发送至京东服务器的对应软件端口上

 

posted @ 2019-02-19 16:58  Sandy-123  阅读(250)  评论(0编辑  收藏  举报