网络通信

IP地址

        描述了网络上一个主机的位置 ~

端口号

        描述了一个主机上的某个应用程序~

        端口号本质上是2个字节的无符号整数(0-65535)~

        服务器程序在启动的时候,需要绑定一个端口号,以便客户端程序来访问~

协议

        本质上就是约定发送方发出的数据是什么样的格式,接收方按什么样的格式解析~

1)物理层协议【都是提前定义好的

        负责所有主机和网络设备之间都是相互匹配的,例如:网线、网卡与主机适配~

2)数据链路层协议【都是提前定义好的

        负责网络中相邻(一个网线相连)的两个设备之间的通信~

3)网络层协议【都是提前定义好的

        负责网络中任意两个设备(通常指不相邻设备)之间的通信,规划出一条最合理的通信路线~

4)传输层协议【都是提前定义好的

        负责起点到终点之间的通信,只关注结果(数据到没到),不关注过程(数据走哪条网络线路)

5)应用层协议【需要程序员自己设计

        使用什么应用程序,就对应什么应用层协议,该协议是由开发应用程序员设计定义的,负责解析传输的数据是干啥用的~

举个例子:网购一条毛巾

消费者:站在应用层的角度~        考虑毛巾用来干啥;

商家:站在传输层的角度~           考虑毛巾能不能发到消费者手中;

快递公司:站在网络层的的角度~  考虑毛巾怎么给你发到当地的集散中心;

快递小哥:站在数据链路层的角度~ 考虑怎么将毛巾送到消费者手中;

快递过程中所用到的设备: 站在物理层的角度~ 考虑快递设备都可以正常使用且能匹配快递网络;

网络设备实现的协议

    主机:实现了物理层、数据链路层、网络层、传输层、应用层

路由器:实现了物理层、数据链路层、网络层

交换机:实现了物理层、数据链路层

举例说明不同的分层协议之间是相互配合的】    

例如:使用QQ给同学发送信息~

用户A在键盘上,输入一个"hello",按下发送键~

11)应用层协议:

根据用户输入内容,把数据构造成一个应用层数据报(遵循该协议的一组数据)~

假设QQ的应用层协议报文为:

 应用层协议将应用层数据报传输给传输层~

22)传输层协议:

将传输来的应用层数据报,基于当前的传输层协议,构造成一个传输层的协议报文~

传输层协议以TCP协议为例:

TCP数据报:

【封装】构造TCP数据报的过程:是TCP协议报头与应用层协议报文这两个字符串的拼接~

TCP协议报头:里面存放的是二进制数据~其中包含(源端口和目的端口)

           源端口:相当于发件人电话;

        目的端口:相当于收件人电话;     

传输层协议将传输层协议报文传输给网络层~

 33)网络层协议:

将传输来的TCP数据报,基于当前的网络层协议,构造成一个网络层的协议报文~

网络层协议以IP协议为例:

IP数据报:

 【封装】构造IP数据报的过程:是IP协议报头与传输层协议报文这两个字符串的拼接~

IP协议报头:里面存放着源IP和目的IP

           源IP:相当于发件人的地址(起始点地址);

        目的IP:相当于收件人的地址(终止点地址);

网络层协议将网络层协议报文传输给数据链路层~

44)数据链路层协议

将传输来的IP数据报,基于当前的数据链路层协议,构造成一个数据链路层的协议报文~

数据链路层协议以 以太网为例:

以太网数据帧:

 【封装】构造以太网数据帧的过程:是帧头和帧尾与IP数据报这三个字符串的拼接~

帧头:与之相邻的下一个结点的地址;

帧尾:

网络层协议将以太网数据帧传输给物理层~

55)物理层协议

将传输来的以太网数据帧(二进制数据),基于当前的物理层协议:

        1)转化成高低电平,通过网线传输出去

        2)转化成高频/低频的电磁波,通过光纤或者无线的方式传输出去~

封装:数据从上层协议--->下层协议,逐层构造数据报的过程称为封装~

 


到了此处,数据已经离开当前主机,前往下一个设备了!


  66)物理层协议

主机B的网卡感知到一组高低电平,就会把这些电平翻译成一组二进制数据~ 

这组二进制数据其实就是以太网数据帧~

物理层协议把这组以太网数据帧传输给数据链路层~

77)数据链路层协议    

【分用】将传输来的以太网数据帧,基于数据链路层协议,去掉帧头和帧尾,解析成IP数据报~

数据链路层协议把IP数据报传输给网络层~

88)网络层协议 

【分用】将传输来的IP数据报,基于网络层协议,去掉IP协议报头,解析成TCP数据报~

网络层协议把TCP数据报传输给传输层~

99)传输层协议

【分用】将传输来的TCP数据报,基于传输层协议,去掉TCP协议报头,解析成应用层数据报~

传输层协议把应用层数据报传输给应用层~

00)应用层协议

【分用】应用层协议调用socket API来从内核中读取到这个应用层数据报并进行解析,将解析后得到的结果显示在对话框中~

分用:数据从下层协议-->上层协议,逐层解析数据报的过程,称为分用~

【两个主机之间含交换机】

 【两个主机之间含路由器】

 【两个主机之间含路由器和交换机】

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值