网络原理简介(IP,端口,协议)

Posted 木木林Violet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络原理简介(IP,端口,协议)相关的知识,希望对你有一定的参考价值。

网络发展

独立模式

顾名思义,指的是计算机之间相互独立的模式,每台计算机之间的数据相互独立,无法互通。

网络互连

随着时代的发展,越来越需要计算机与计算机之间的相互通信,共享应用和数据,因此有了网络互连。
网络互连则是将多台计算机连接在一起,完成数据之间的共享。
根据网络互连的规模的不同,可将网络互连划分为局域网和广域网。

局域网LAN

局域网,即 Local Area Network,简称LAN。
Local 标识了局域网是本地,局部组建的一种私有网络。
局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
局域网组建网络的方式有:

  1. 基于网线直连
  2. 基于集线组建
  3. 基于交换机组建
  4. 基于交换机和路由器组建

广域网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之间的数字,在网络通信是,进程可以通过绑定一个端口号,用来发送和接受网络中的数据。
注意事项
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。
也就是进程和端口号是一对多的关系。

协议

协议,为网络协议的简称。
网络协议是网络通信中经过的所有网络设备都必须遵守的一组约定、规则。只有遵守了这个约定,计算机与计算机之间才可以互相通信交流。协议最终体现为网络上传输的数据包个格式。
三要素

  1. 语法:即数据与控制信息的结构或格式。
  2. 语义:即西哟啊发送何种控制信息,完成何种动作以及做出何种相应。
  3. 时序:即时间实现顺序的详细说明。

作用
因为计算机生产的厂商、操作系统和网络设备都有很多,若每个硬件都以自己的规则来传输数据,那内外的硬件则无法识别出得到的数据,因此需要提前约定好对方的数据格式,只有以规定好的约定来传输数据,才可以被正常的接受。

五元组

在TCP/IP协议中,通常用五元组来识别一个网络通信:

  1. 源IP:标识源主机。
  2. 源端口号:标识源主机中盖茨通信发送数据的进程。
  3. 目的IP:标识目的主机。
  4. 目的端口号:标识目的主机中盖茨通信接收数据的进程。
  5. 协议:标识发送进程和接收进程双方约定的数据格式。

协议分层

对于网络协议而言,往往将协议分成几个层次来进行定义。

分层作用

对于分层而言,最大的好处,类似于面向接口编程:定义好两层之间的接口规范,让双方都遵守这个规范来对接。
其中,对于使用方而言,并不用关心提供方是如何实现的,只需要使用接口即可;而对于提供方而言,可以利用封装的特性,隐藏实现的细节,只需要开放接口即可。

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

RPC通信原理概述

微观传输原理:协议端口套接字接口

DNS服务简介和配置详解

Python学习之——Tcp/ip基础/IP地址/DNS/端口简介

计算机网络之端口