网络原理初识

  • Post author:
  • Post category:其他



目录


前言:


网络通信


IP地址


端口号


协议


五元组


协议分层


小结:


前言:

互联网可谓是当今世界非常普及的一个名词了。所谓互联网就是通过组网设备把很多台计算机连接在一块。形成一个庞大的局域网LAN或者说广域网WAN(两者是相对的概念)。在这些设备中可以通过有线或者无线进行数据传输。

网络通信

计算机之间的数据传输需要借助组网设备。当然需要通过网络来传输数据,即网络通信。

IP地址

ip地址用来定位主机的网络地址。(这里只是浅谈一下ip地址,后面会有详细的介绍)


格式

ip地址是一个32位的二进制数,通常被分割为4个8为二进制数(四个字节)。通常使用点分十进制来表示ip地址。



注意:

特殊ip:127.0.0.1。称之为本机环回ip。本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

端口号

通过ip地址可以确定主机在网络中的地址,当知道地址还需要确定主机上哪一个进程来接收数据。端口号就是用于定位主机中的进程。端口号是一个0 – 65535之间的一个数字。其中:0 – 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使用的应用层协议。



注意:

一个主机上,两个不同的进程不能绑定同一个端口号。如果绑定了同一个端口号,那么当请求过来哪个端口去接收这个请求,就说不清楚了。在java中也会抛异常。

一个主机上,一个进程可以绑定多个端口号。在java中通过Socket对象直接操作网卡,Socket对象和端口号是一一对应的,一个进程中可以存在多个Socket对象。

协议

数据组织是有一定的格式。发送方按照这个格式进行数据发送,那么接收方也需要按照这个格式解析数据。两者相互遵顼的约定就被称为协议。协议最终体现为在网路上传输数据包的格式。

五元组

一次网络通信需要明确:源ip,源端口,目的ip,目的端口,协议号。很容易就可以想到,一次网络通信必须包含这五个元素(可类比发快递)。

协议分层

一个大协议往往包含很多内容,同样的制定这个协议也会包含很多需要考虑的因素,不利于我们去设定(比较杂乱)。因此采用协议分层处理,一些有相同功能协议分为一层。



分层优点:


1)

降低了学习和维护成本,利于封装。


2)

灵活的针对某一层协议进行替换。

当前互联网世界,协议分层有两种。(这里简单介绍每层协议的作用,后面会有详细的解释)


1)

OSI七层网络模型


2)

TCP/IP五层网络模型



注意:

TCP/IP是OSI的简化的实现方式,把OSI的应用层,表示层,会话层统一用应用层表示。传输层和网络层由操作系统实现。数据链路层和物理层是由硬件的设备驱动程序和网络接口实现。


1)

应用层:应用程序,描述了传输的数据,用户怎样使用。


2)

传输层:确定两端(发送方,接收方)。


3)

网络层:负责传输路径规划,走哪条路比较划算。


4)

数据链路层:主要负责相邻节点怎样传输数据(传输的形式是什么)。


5)

物理层:约定了网络通信中的基础设备(比如网线,网口等设备)。



核心思想:

不同层有不同层所遵循的一些协议,从应用层往下经过每一层,用每一层所遵循的协议对数据进行“打包”。接收方接收到数据后,也是通过每一层用相同的协议进行解析,最终解析出发送方的数据。


封装:

上层到下层数据“打包的过程”。(发送方)


分用:

下层对上层数据进行解析(接收方,解析需要和封装过程中每层协议相同)



注意:

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。

数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中

的 “上层协议字段” 将数据交给对应的上层协议处理。

小结:

新的一年里,继续奋斗!💪



版权声明:本文为weixin_62353436原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。