网络原理简介(IP,端口,协议)
Posted 木木林Violet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络原理简介(IP,端口,协议)相关的知识,希望对你有一定的参考价值。
网络发展
独立模式
顾名思义,指的是计算机之间相互独立的模式,每台计算机之间的数据相互独立,无法互通。
网络互连
随着时代的发展,越来越需要计算机与计算机之间的相互通信,共享应用和数据,因此有了网络互连。
网络互连则是将多台计算机连接在一起,完成数据之间的共享。
根据网络互连的规模的不同,可将网络互连划分为局域网和广域网。
局域网LAN
局域网,即 Local Area Network,简称LAN。
Local 标识了局域网是本地,局部组建的一种私有网络。
局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
局域网组建网络的方式有:
- 基于网线直连
- 基于集线组建
- 基于交换机组建
- 基于交换机和路由器组建
广域网WAN
广域网,即 Wide Area Network,简称WAN。
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。
网络通信
我们通常说的网络,是指进程与进程之间跨主机(host)之间的通信。
网络通信,顾名思义,也就是通过网络在进行通信,也就是网络数据传输。
但如何知道和哪台主机进行通信,并且如何传输到对应主机的进程中,则需要使用IP地址和端口来进行标识。
IP地址
概念
IP地址属于网络层,主要用来标识网络主机、其他网络设备(如路由器)的网络地址。简而言之,IP地址用来定主机的网络地址。
格式
IP地址为一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是四个字节),如01100100.00000100.00000101.00000110。
但这样的表示略显复杂,于是一般使用“点分十进制”的方式来表示,也就是a.b.c.d,其中每个数都是0~255之间的十进制整数,因此可以将上述的IP地址重新表示为100.4.5.6。
特殊IP
在众多的IP地址中,存在一些较为特殊的IP地址,这些IP地址通常有了特殊的意义,如127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1。
PS:本机环回主要用于本机到本机之间的网络通信,因为其系统内部为了性能,不会走网络的方式来进行传输,于是,对于开发网络通信的程序而言,常见的开发方式都是本机发哦本机的网络通信。
端口号
概念
虽然IP地址解决了主机之间的识别问题,但主机上通常有着众多的进程,将把数据传输到哪一个进程中也变成了一个问题。
于是可以用端口号来表示主机中发送数据、接受数据的进程。简而言之,端口号用来定位主机中的进程。
格式
端口号是0~65535之间的数字,在网络通信是,进程可以通过绑定一个端口号,用来发送和接受网络中的数据。
注意事项
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。
也就是进程和端口号是一对多的关系。
协议
协议,为网络协议的简称。
网络协议是网络通信中经过的所有网络设备都必须遵守的一组约定、规则。只有遵守了这个约定,计算机与计算机之间才可以互相通信交流。协议最终体现为网络上传输的数据包个格式。
三要素
- 语法:即数据与控制信息的结构或格式。
- 语义:即西哟啊发送何种控制信息,完成何种动作以及做出何种相应。
- 时序:即时间实现顺序的详细说明。
作用
因为计算机生产的厂商、操作系统和网络设备都有很多,若每个硬件都以自己的规则来传输数据,那内外的硬件则无法识别出得到的数据,因此需要提前约定好对方的数据格式,只有以规定好的约定来传输数据,才可以被正常的接受。
五元组
在TCP/IP协议中,通常用五元组来识别一个网络通信:
- 源IP:标识源主机。
- 源端口号:标识源主机中盖茨通信发送数据的进程。
- 目的IP:标识目的主机。
- 目的端口号:标识目的主机中盖茨通信接收数据的进程。
- 协议:标识发送进程和接收进程双方约定的数据格式。
协议分层
对于网络协议而言,往往将协议分成几个层次来进行定义。
分层作用
对于分层而言,最大的好处,类似于面向接口编程:定义好两层之间的接口规范,让双方都遵守这个规范来对接。
其中,对于使用方而言,并不用关心提供方是如何实现的,只需要使用接口即可;而对于提供方而言,可以利用封装的特性,隐藏实现的细节,只需要开放接口即可。
TCP/IP五层模型
TCP/IP是一组协议的代名词,其中还包含了很多的协议,来共同组成TCP/IP协议簇。
TCP/IP通信协议采用了五层的层级结构,每一层都会呼叫它的下一层所提供的网络来完成自己的需求。
- 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程
访问协议(Telnet)等。我们的网络编程主要就是针对应用层。 - 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发 送到目标主机。
- 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表
的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。 - 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上
检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。
有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。 - 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同
轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理
层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
网络设备所在分层
- 主机:它的操作系统内核实现了从传输层到物理层的内容,也就是TCP/IP五层模型的下四层。
- 路由器:它实现了从网络层到物理层,也就是TCP/IP五层模型的下三层。
- 交换机:它实现了从数据链路层到物理层,也就是TCP/IP五层模型的下两层。
- 集线器:它只实现了物理层
其中上述的设备都是传统意义上的设备,但随着网络设备的不断发展,很多设备有了更加复杂的功能,也因此有了更多的层数。以下所说的网络设备都是指传统意义上的设备。
以上是关于网络原理简介(IP,端口,协议)的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#网络协议之:socket协议详解之Unix domain Socket