网络中一些基本的概念

一、IP地址

在进行网络通信时,实际是网络数据传输,再具体一点就是网络主机的不同进程减,基于网络传输数据。那么这就需要知道,数据是从哪台主机来,到哪台主机去,IP地址就是用来表标识不同主机的。

IP地址主要用于标识网络主机、其它网络设备(如路由器)等的网络地址,用于定位主机的网络地址

IP地址的格式还一个32位的二进制数,通常被分割成为4个“8位二进制数”,例如:01100100.00000100.00000101.00000110。通常我们记录的时候用“点分十进制”的方式来表示。例如:100.4.5.6。

二、端口号

IP地址用来确定主机的网络地址,也就是确定是哪一台主机,而端口号则是标识主机中发送数据、接收数据的进程。简单说就是用于定位主机中的进程,因为主机中会有很多进程,但数据发送或接收时需要知道是从拿个进程发出或发给哪个进程的,所以端口号就是找到相应的应用程序,进行数据的传输。

端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

两个不同的进程不能绑定同一个端口号,但是一个进程可以绑定多个端口号。

三、协议

协议是网络协议的简称。是网络通信经过的所有网络设备都必须共同遵从的一组约定、规则。比如建立连接的方式、以什么样的形式进行传输,有了这个约定才能让双方理解对方的含义。

四、协议分层

对于网络协议来说,往往要分成几个层次来进行定义。好处是降低了学习和维护成本,并且灵活地针对这里的某一层协议进行替换。

关于协议分层,有OSI七层网络模型(实际没有落地)和TCP/IP五层(四层)(实际上的情况)两种:

应用层

应用层

常用协议:DNS,URI,HTML,HTTP,TLS/SSL,SMTP,POP,IMAP,MIME,TELNET,SSH,FTP,SNMP,MIB,SIP,RTP,LDAP

应用程序

表示层

会话层

传输层

传输层

常用协议:TCP,UDP,UDP-Lite,SCTP,DCCP

操作系统

网络层

互联网层

常用协议:ARP,IP,ICMP

数据链路层

网卡层

设备驱动程序与网络接口

物理层

(硬件)

OSI参考模型

TCP/IP分层模型

网络分层各层之间的关系:上层协议要掉用下层协议,下层协议给上层协议提供服务。物理层:约定了网络通信中基础的硬件设备是什么样的,比如通次你用的网线,网口等设备;数据链路层:主要负责相邻两个节点之间,具体怎么进行传输;网络层:从宏观上规划出传输路径,走哪条路线比较划算;传输层:只关心起点和终点,即端到端的传输;应用层:应用程序描述了传输的数据,用户要怎样来使用。物理层属于纯硬件的,有些资料算物理层就是五层,不算物理层就是四层。

五、封装和分用

不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧,但实际中不计较这么细。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装。首部信息中包含了一些类似于首部多长,载荷多长,上层协议是什么等信息。数据封装成帧发到传输介质,到达目的主机后每层协议再剥掉对应的首部,根据首部中的“上层协议字段”将数据交给上层协议处理,称为分用。

下面为数据封装过程:

(1)应用层

假设一个应用层协议的格式,用qq发送信息的时候,假设协议中包含发送方qq号,发送时间,接收方qq号,消息内容。

123456

(发送方qq号)

2023-03-21

20:32

(发送时间)

654321

(接收方qq号)

吃了吗

(消息内容)

应用层数据具体的数据格式,咱们是不清楚的,每个应用程序都不一定一样,只有开发程序的人才知道。

所谓的应用层数据报,本质上就是一个遵守了约定格式的字符串。程序要调用操作系统IP,把这个应用层的数据交给传输层。

(2)传输层

在传输层中,就是把上述应用层数据构造成传输层的数据报。传输层最知名的协议:UDP和TCP,假设使用UDP:

UDP报头

应用层数据(UDP的载荷)

UDP报头是另一个特定格式的字符串(涉及源端口和目的端口),拼接时类似字符串拼接。所谓的报头就是一个标签,通过这标签表示出当前要把这个消息怎样进行传输。

传输层就把这个UDP数据报交给网络层。

(3)网络层

最知名的协议是IP协议。该协议要给予上述数据,打包成一个IP数据报。

IP报头

UDP报头

应用层数据(UDP的载荷)

传输过程需要知道:源IP、源端口、目的IP、目的端口、协议类型。网络层数据报准备好后,还需要交给数据链路层。

(4)数据链路层

最知名的协议叫做“以太网”,基于上述数据,还要打包成一个“以太网数据帧”。

以太网帧头

IP报头

UDP报头

应用层数据

以太网帧层

这个数据报继续往下传输,交给物理层。

(5)物理层

把上述二进制的数据(一串01010)转换成电信号/光信号,此时就真正的把数据发出去了。上述过程,从应用层到物理层,层层加码,这个过程就称为封装。

下面为数据分用的过程:

(1)物理层:

网卡接收到的是光信号和电信号,是在物理层,把这个光信号转换成二进制的数据。转换回的数据其实是一个以太网的数据帧。

(2)数据链路层

把上面物理层处理的数据交给数据链路层进行解析,数据链路层需要去掉帧头和帧尾,取出中间的载荷,交给上层的网络层。报头里会有记录,这个载荷是不是一个IP数据报。

(3)网络层

IP协议针对这里进行解析,解析出IP报头,取出IP协议的载荷,把这里得到的传输层数据报,交给上层传输层。

(4)传输层

UDP进行解析,取出报头,取出载荷,再把这个载荷交给对应的应用程序。UDP报头里有一个重要的字段——“目的端口”,目的端口是一个具体的应用程序,关联在一起的。因此就可以根据这个端口来把数据交给应用程序。

(5)应用层

应用程序会针对应用层协议进行解析,显示到界面上。

上述,从下到上层层解析,这个过程成为“分用”。

六、客户端和服务器

服务端:在常见的网络数据传输场景下,把提供服务的一方进程,称为服务端,可以对外提供服务。而服务器中存在着多个服务端。

客户端:获取服务的一方进程,称为客户端。

七、请求和响应

一般来说,获取一个网络资源,涉及到两次网络数据传输:第一次,请求数据的发送;第二次,响应数据的发送。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值