网络编程的基本知识

本文详细介绍了网络互联的两种规模——局域网和广域网,以及三种常见的组网方式。网络通信的基础包括IP地址和端口号,它们在网络中分别作为主机位置标识和应用程序标识。协议是网络通信的规则,其分层结构有助于简化设计和实现。OSI七层模型和TCP/IP五层(四层)模型被广泛讨论,各层的主要功能和作用得以阐述。网络设备如交换机、路由器在不同层次上起作用。最后,通过封装和分用的概念,解释了数据在网络中的传输过程。

目录

两种不同的网络互联规模

三种方式组网方式

网络通信的基础

IP地址

端口号

认识协议及其作用

协议的分层

协议分层的意义

OSI七层网络模型

TCP/IP五层(四层)模型 

物理层

数据链路层

网络层

传输层

应用层

网络设备所在的分层

网络分层当中的一组重要概念(封装和分用)

应用层到传输层

传输层到网络层

网络层到数据链路层

数据链路层到物理层

物理层到数据链路层

数据链路层到网络层

网络层到传输层

传输层到应用层 

总结


两种不同的网络互联规模

1.局域网(LAN),Local Area Network是一个本地的网络,是局部组建的一种私有网络。

2.广域网(WAN),Wide Area Network是将多个局域网连接组建起来的。

三种方式组网方式

基于网线直连

 

网线相连的主机组成局域网,这种连接方式耗费大量的网线和接口。

基于交换机组建局域网

交换机上的每一口的作用是相同的,效果就是把接入的所有设备组成一个局域网。在这个局域网内部的主机可以进行相互访问。 

基于路由器组建局域网

路由器通常有两个口,一个是LAN口,一个是WAN口,其中连接在LAN口的设备在一个局域网当中。通过WAN口 连接到另外一个路由器的LAN口,连接另外一个局域网。

网络通信的基础

IP地址

1.描述的是网络上的一个主机的位置(收获地址)。

2.IP地址本质上是是一个32位整数,但是32位整数不方便记忆。所以将32位整数按照字节分成4个部分,每个部分用.隔开,且没部分整数的十进制数范围为0~255. 

格式:32位二进制数,分成4个8位二进制数。

 

端口号

1.描述一个主机上的一个应用程序。(收件人的信息)

2.端口号默认为2个字节(16位)的无符号整数,范围为0~65535

认识协议及其作用

协议是网络协议的简称,网络协议是使用网络通信(网络传输数据)经过所有网络设备都必须遵守的一组规定,规则。如:要怎样建立连接,怎样相互识别,只有遵守这样的协议,计算机之间才能进行正常的通信。

协议的内容通常分为三要素:1.语法,即数据与控制信息的结构和格式。2.语义,即需要发出合作信息,需要完成何种动作,做出何种回应。3.时序,即事件实现顺序的说明。

计算机之间通信媒介是光信号和电信号,通过光信号的高或低频率和电信号的高或低电平来表示这样的0和1信息。想要传递不同的数据格式,就需要约定不同的协议。

协议的分层

协议分层的意义

1.每层协议间没有必定的联系。(便于封装)

2.便于把对应层的协议更换。(更好的解耦合)

OSI七层网络模型

TCP/IP五层(四层)模型 

对比OSI七层模型,TCP/IP当中将应用层和表示层和会话层合并为应用层,其他的层是相同的只不过命名存在差异。

为什么既称为五层又称为四层协议?

分为四层和分为五层站在的角度不一样。五层是全局的角度看待的,而站在程序员的角度上看,物理层描述的是硬件设备和软件有没有较大的关系,所以会将物理层省略。

物理层

网络通信当中的设备,如:网线网卡,这部分是针对硬件的约束,保证所有主机和网络设备之间是相互匹配的。如:各种品牌的路由器接口都是相同的,各种主机的网络接口都是相同的。

数据链路层

负责完成两个相邻设备的直接的通信(相邻设备就是用两根网线连接的设备)。

 图中,路由器和主机1是相邻的,路由器和主机2是相邻的,主机1和主机2不是相邻的。

网络层

负责点到点之间的通信,特指的是网络当中不相邻的主机之间的通信。

 

例如图中,主机1给主机3发生信息,就是两个不相邻的点之间的通信。网络层就负责在这两点之间规划出一条合适的路线。(实际网络结构非常复杂,两个点之间的通信线路不止有一条,就需要规划出合适的那一条)。 

传输层

负责端到端之间的通信(起点到终点),同时只关系数据到了没有,而不关心数据传输的过程。打个比方,当我们网购商品时,下单后卖家将商品寄出后,商家只会关注的是商品的结果(商品寄到了没有),而不会关注商品寄的方式和寄的路线,商家就像当与传输层。

应用层

应用层与应用程序密切相关,例如传输的数据是什么,有什么作用。不同的应用程序有不同的用途。

还是网上购物的例子,商家是传输层,考虑这个东西能不能到达我的手上;快递公司是网络层,规划快递运送的路线;快递小哥是数据链路层,骑电瓶车将商品运送到快递集散中心或者将快递运输到顾客手中;电动车,公路,是物理层,提供传输的基础;以上的群体关系的是除了商品内容之外的东西。

顾客就相当于应用层,考虑商品的用途,和内容。

网络设备所在的分层

1.一台主机实现了物理层到应用层五层。

2.一台路由器实现了物理层到网络层(主要实现了物理层,数据链路层,网络层)。

3.一台交换机实现了物理层到数据链路层(主要实现了物理层,数据链路层)。

网络分层当中的一组重要概念(封装和分用)

主要了解不同协议之间是如何配合的,通过一个例子来理解这个过程:用户A使用通讯App向用户B发送打招呼信息。

应用层到传输层

 其中TCP协议报头包含的信息很多,包括“源端口”和“目的端口”。

上述的过程就是封装的过程(但是这个封装和Java面向对象中的封装不同)。

传输层到网络层

其中的IP协议报头包含的信息是“源IP”和“目的IP”

网络层到数据链路层

帧头存储的接下来要传的设备的地址(写的是当前地址到接下来一个相邻节点的地址),随着数据往下一个设备转发,帧头当中的地址会发生改变;

帧尾写着校验和。

数据链路层到物理层

到了以上步骤,数据就会离开当前主机了,到达下一个网络设备(可能数据交换机,路由器),A和B之间大概率不是用网线直连,所以这中间可能会经过多的重复过程。

以上过程都统称为封装的过程。接下来看看分用的过程。所谓分用就是封装的逆过程。

物理层到数据链路层

主机B感知到一组高低电平,并将其转化为0 1 的一串数据,这串0 1为一组完整的以太网数据帧。这时候物理层就将以太网数据帧传到了数据链路层。

以太网数据帧:

数据链路层到网络层

这时候数据链路层负责对以太网数据帧进行解析,去掉帧头和帧尾,取出IP协议报文。再将IP协议报文交给传输层。

IP协议报文:

网络层到传输层

 传输层将IP协议报文进行解析,将其中的IP协议报头去掉,取出其中的TCP协议报文。将TCP协议报文传给应用层。

TCP协议报文:

传输层到应用层 

应用层会调用socket ApI 从内核当中读取到这个应用层数据,再按照应用层协议进行解析,根据解析结果给显示到窗口。

总结

其实无论网络构造多么复杂,这里整体的传输过程都是相似的,只是在不停重复的封装和分用过程。正如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爆裂突破手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值