JavaEE:网络初识

路由器VS交换机

组件局域网的方式是通过路由器或者交换机

交换机:上面有很多对接口,所有的口都是等价的,电脑可以连到任意的口上,连上的电脑就构成了局域网

路由器:又叫WiFi/猫

猫:调制解调器,把电话线中的模拟信号转成以太网的数字信号

光猫:把光纤中的光信号转成以太网的电信号

上面的口分成两种:WAN口和LAN口;构成局域网的电脑都连到LAN口,WAN口对接运营商网线

LAN口还可以继续接交换机,对路由器现有的端口进行扩展

 

通信行业公司:做交换机和路由器,比如:华为,中兴,华硕等


IP地址

描述一个设备在网络上的位置

本质上是32位,4个字节的整数,为了方便表示,把IP地址表示成“点分十进制”的形式。使用3个“.”把4个字节分成4个部分,每个部分1个字节。取值范围是0~255

比如 192.168.2.101


端口号

描述一个主机/设备上的哪个程序正在使用网络(IP确定主机)

端口号可以是用户手动指定的,也可能是系统自动分配的

同一个主机上,程序之间使用的端口号不能冲突(端口号是一个整数)

进行一次网络通信的过程中,涉及到的IP和端口其实各有两个。与我们网购买东西一样

收件人地址  ---->  目的IP

收件人电话  ---->  目的端口

发件人地址  ---->  源IP

发件人电话  ---->  源端口


协议

通信过程中的一种约定。发送方和接收方需要提前商量好数据的格式,才能确保二者之间能正确进行沟通

通信的两个计算机可能来自不同的两个厂商,协议就能够使两个厂商产出的设备相互配合

五元组

为啥有协议号?

网络通信过程中的细节很多,如果只靠一个协议把这些庞杂的细节记录下来,非常不利于学习和维护。所以就要把一个高大全的协议拆分成多个小而美的协议

协议太多怎么办?协议号可以给每个协议做标识

引入协议分层。--》相当于公司

功能相似的协议放到同一层之中,上层协议可以调用下层协议的功能,下层协议为上层协议提供服务。--》相当于一个公司的组织架构,上级领导管理下层员工,下层员工给上级领导打工

只有相邻层级的协议可以进行沟通,不能跨层调用(会引起混乱)--》相当于越级汇报

附带好处

1.下层协议把细节都封装好了,上层协议可以直接使用下层协议,不需要了解下层协议的细节

 2.某一层的协议进行替换之后,对于其他层没啥影响

具体的分层

OSI七层网络协议化简之后变成TCP/IP五层(或四层)网络协议

或四层?不算物理层(硬件)的情况,也就是纯软件的情况

应用层:程序拿到数据包之后要用来干啥,解决什么问题(快递到手后随买主自由操作)

传输层:负责关注网络数据包的起点和终点,端到端之间的传输(快递从哪送到哪)

网络层:负责关注从起点到终点要走哪条路(路径规划)(快递怎么送过来)

数据链路层:负责两个相邻结点的传输(快递包中转点)

物理层:通信中的基础设施(快递传输中的公路,铁路等)

对于一台主机,其操作内核实现了从传输层到物理层的内容,就是TCP/IP的下四层

对于一台路由器,实现了从网络层到物理层,就是TCP/IP下三层,工作在网络层

对于一台交换机,实现了从数据链路层到物理层,就是TCP/IP下两层,工作在数据链路层

对于集线器,只实现物理层


封装

比如A给B的QQ发送了hello,A发出去的过程需要将这段信息层层封装成一个信号/电磁波

1.应用层(应用程序) 

QQ在输入框获取hello,把这个数据按照QQ预先设置的应用层协议构成一个应用层的数据包

这里的应用层协议是一个字符串拼接的格式,应用程序就会调用操作系统提供的API,把这个数据包交给传输层


2.传输层

传输层把从应用层获取的数据作为一个整体重新构成一个传输层的数据包。

传输层的协议主要是TCP和UDP。假设用UDP,就会造一个UDP数据包

添加报头的过程就叫封装(其实是字符串拼接,拼完的报头有一定的结构)

报头的作用并不是保护数据,可以起到贴标签类似的效果,可以承载源端口和目的端口这类用来转发的信息


3.网络层

核心协议:IP协议

把刚才的传输层UDP数据包作为一个整体,再拼上一个IP协议的报头,构成一个IP数据包

IP报头最重要的信息就是源IP和目的IP


4.数据链路层

涉及的核心协议:以太网("以太"用来表示网络传输的介质)

以太网就是我们日常见到的有线网络,网口:以太网口;网线:以太网线;交换机:以太交换机

以IP数据包为一个整体,添加上帧头和帧尾,构成一个以太网数据帧


5.物理层 (硬件设备)

把上述的以太网数据帧(是二进制结构),转换成光信号(光纤)/电信号(网线)/电磁波(无线WiFi),然后进行发送


分用

假定数据包已经到达B的网卡了,B将A封装的东西层层解析过程就叫分用

1.B的物理层

B的物理层收到了光信号/电信号/电磁波。就会把这些物理信号转换成数字信号,得到一个以太网数据帧,进一步地把这个数据帧交给数据链路层处理

2.数据链路层 -- 以太网

3.网络层 -- IP协议

4.传输层 -- UDP协议

5.应用层

QQ在B窗口弹出提示,把消息/消息发送者/发送时间显示在聊天窗口上

分用的过程就是封装的逆过程


真实情况下,两台主机一般不会通过网线直连,而是通过一系列交换机或者路由器来进行数据转发

即使经过交换机或路由器,封装分用的过程也是适用的

经典的交换机只封装分用到数据链路层;经典的路由器只封装分用到网络层


描述网络上传输数据的单位的术语 

包(packet) 比如IP数据包

段(segment) 比如TCP数据段

报(datagram) 比如UDP数据报

帧(frame) 比如以太网数据帧

  • 25
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值