【网络】网络基础

目录

协议

协议分层

TCP/IP四层模型

局域网通信

IP地址与MAC地址

通信本质


协议

协议是一种“约定”。计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息。想要传递各种不同的信息,就需要约定好双方的数据格式。

一台计算机内部本质也是一个小型网络结构:CPU、内存、磁盘、外设……通过总线连接,每一种硬件都有自己的通信协议。

协议的意义:减少通信成本。

协议分层

分层意义:

  • 分层管理,一层出问题不影响另一层,出现问题方便调整
  • 将功能比较集中,耦合度高的模块分为一层(高内聚)
  • 每一层都解决特定的问题,每一层都有自己匹配的协议

OSI七层模型:

  • OSI:Open System Interconnection,开放系统互联,七层网络模型称为开放式系统互联参考模型
  • 把网络从逻辑上分为了七层,每一层都有相关对应的物理设备,如路由器、交换机......
  • OSI七层模型是一种框架性的设计方案,其最主要功能就是帮助不同类型主机实现数据传输
  • 它的最大优点是将服务、接口和协议这三个概念明确的区分开来,通过七个层次化的结构模型使不同的网络之间实现可靠的通讯
  • 但是它既复杂又不实用,所以通常我们将其看为TCP/IP四层模型

【网络】网络基础_第1张图片

TCP/IP四层模型

TCP/IP是一组协议的代名词,它还包括很多协议,组成了TCP/IP协议簇

TCP/IP通讯协议采用了5层的层级结构,将OSI的应用层、表示层、会话层压缩成应用层,我们通常不考虑物理层,每一层都呼叫它的下一层所提供的网络来完成自己的需求

  • 数据链路层:负责设备之间的数据帧的传送和识别,例如网卡设备的驱动、帧同步(就是从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网、无线LAN等标准。交换机工作在数据链路层。
  • 网络层:负责地址管理和路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由),路由器(Router)工作在网络层。
  • 传输层:负责两台主机之间的数据传输,如传输控制协议(TCP),能够确保数据可靠的从源主机传输到目标主机。
  • 应用层:负责应用程序间沟通,例如电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telent)等。我们的网络编程学习主要是针对应用层。

局域网通信

两台局域网的主机能够直接通信

每一台主机都有自己的“名字”,每一台主机的网卡都有独立的地址(MAC地址),表明自己在局域网中的唯一性

局域网通信标准:以太网、令牌环网、无线LAN

【网络】网络基础_第2张图片

每一层协议的报头中,一定要涵盖上一层的信息

报文 = 报头 + 有效载体

IP层往上,所有的协议都是一样的,有路由器实现屏蔽底层网络的差异

IP地址与MAC地址

IP地址:

  • IP协议有两个版本,IP4和IP6,目前主流使用的是IP4,但是IP6是未来的发展趋势
  • 对应IP4来说,IP地址是一个4字节,32位的整数
  • 我们通常用“点分十进制”的字符串表示IP地址,例如:192.168.0.1,用点分割的每一个数字表示一个字节,范围是0-255

MAC地址:

  • MAC地址用来识别数据链路层中相连的节点
  • 长度为48位,及6个字节,一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改,mac地址通常是唯一的(虚拟机中的mac地址不是真实存在的mac地址,可能会冲突,也有些网卡支持用户配置mac地址)

通信本质

网络通信的本质:主机上的软件之间的通信,软件的载体是进程,通过 IP + 端口号(ip:port)的形式,标识该服务器上进程的唯一性。网络通信的本质,也就是进程间通信。

一个进程可以绑定多个端口号,一个端口号不能被多个进程绑定。

在网络通信过程中,IP + Port标识唯一性,client  --->  serve,除了数据,自身的IP和Port也会发送给对方,serve也可以根据对方的IP和Port进行回应。

TCP协议

  • TCP:Transmission Control Protocol 传输控制协议,
  • 传输层协议、有连接、可靠传输、面向字节流

UDP协议

  • UDP:User Datagram Protocol 用户数据报协议
  • 传输层协议、无连接、不可靠传输、面向数据流

网络字节序

  • 发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出
  • 接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存
  • 网络数据流规定:先发出的数据是低地址,后发出的数据是高地址
  • TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节
  • 不管主机是大端机还是小端机,都会按照TCP/IP协议规定的网络字节序来发送/接收数据
  • 如果当前发送的主机是小端,就需要先将数据转为大端;否则就忽略,直接发送

你可能感兴趣的:(网络编程,网络,协议,TCP,通信,IP)