计算机网络协议详解

文章目录

  • 计算机网络协议详解
  • 一、计算机网络协议:OSI七层协议
  • 二、计算机网络协议:TCP/IP协议
    • 1.TCP/IP网络接口层
    • 2.TCP/IP网络层
    • 3.TCP/IP传输层
  • 总结


计算机网络协议详解

本篇文章主要总结一些常见的网络基础概念,并介绍了计算机网络相关协议。
相关参考资料:《鸟哥的Linux私房菜——服务器架设篇》


一、计算机网络协议:OSI七层协议

在服务器与客户端连接中,不论是接收端还是发送端,每一层只认识对方同一层次的数据。

计算机网络协议详解_第1张图片

  • Layer 1:物理层
    由于网络媒体只能传送 0 与 1 这种位串,因此物理层必须定义所使用的媒体设备之电压与讯号等, 同时还必须了解数据讯框转成位串的编码方式,最后连接实体媒体并传送/接收位串。

  • Layer 2:数据链路层
    这一层是比较特殊的一个阶层,因为底下是实体的定义,而上层则是软件封装的定义。因此第二层又分两个子层在进行数据的转换动作。 在偏硬件媒体部分,主要负责的是 MAC (Media Access Control) ,我们称这个数据报裹为 MAC 讯框 (frame), MAC 是网络媒体所能处理的主要数据报裹,这也是最终被物理层编码成位串的数据。

  • Layer 3:网络层
    IP就是在这一层定义的, 同时也定义出计算机之间的联机建立、终止与维持等,数据封包的传输路径选择等等。

  • Layer 4:传送层
    定义了发送端与接收端的联机技术(如 TCP, UDP 技术), 同时包括该技术的封包格式,数据封包的传送、流程的控制、传输过程的侦测检查与复原重新传送等,以确保各个资料封包可以正确无误的到达目的端。

  • Layer 5:会谈层
    主要定义了两个地址之间的联机信道之连接与挂断,此外,亦可建立应用程序之对谈、 提供其他加强型服务如网络管理、签到签退、对谈之控制等,确定网络服务建立联机的确认。

  • Layer 6:表现层
    主要定义的是网络服务(或程序)之间的数据格式的转换, 包括数据的加解密也是在这个分层上面处理。

  • Layer 7:应用层
    应用层本身并不属于应用程序所有,而是在定义应用程序如何进入此层的沟通接口,以将数据接收或传送给应用程序,最终展示给用户。

二、计算机网络协议:TCP/IP协议

OSI七层协议虽然架构严谨,但是过于复杂,于是在OSI协议的基础上发展出了TCP/IP协议,目前主要使用的是TCP/IP协议。

计算机网络协议详解_第2张图片

1.TCP/IP网络接口层

  • 以太网传输协议:CSMA/CD

计算机网络协议详解_第3张图片

  1. 接听介质使用情况
    A 主机要发送网络数据包前,需要先对网络媒体进行监听,确认没有人在使用后, 才能够发送出讯框。

  2. 多点传输
    A 主机所送出的数据会被集线器复制一份,然后传送给所有连接到此集线器的主机! 也就是说, A 所送出的数据, B, C, D 三部计算机都能够接收的到!但由于目标是 D 主机,因此 B 与 C 会将此讯框数据丢弃,而 D 则会抓下来处理。

  3. 冲突监测
    该通讯数据附有检测能力,若其他主机例如 B 计算机也刚好在同时间发送数据时, 那么 A 与 B 送出的数据碰撞在一块 (出车祸) ,此时这些通讯就是损毁,那么 A 与 B 就会各自随机等待一个时间, 然后重新通过第一步再传送一次数据。

  • MAC的封装格式
    MAC数据包是整个网络硬件上传输的最小单位,每块物理网卡出厂都会设置一个唯一的MAC号,用于标识每台主机上的不同网卡。

MAC的封装格式

  • 最大传输单位(MTU)
    标准以太网络讯框所能传送的数据量最大可以到达 1500 bytes , 这个数值就被我们称为 MTU。

  • 设备:集线器(Hub)、交换器(Switch)等

2.TCP/IP网络层

  • IP数据包的封装
    其中最重要的就是Source Address与Destination Address,分别记载了源IP地址与目标IP地址。
    计算机网络协议详解_第4张图片

  • IP地址

  1. IP地址分级
    IP地址共32bits,主要划分为Net_ID(网域号码)与Host_ID(主机号码),在同一个网段内,Net_ID 是不变的,而 Host_ID 则是不可重复。

    以二进制说明Network第一个数字的定义:
    计算机网络协议详解_第5张图片
    五种分级的十进制表示:
    计算机网络协议详解_第6张图片

  2. Private IP
    早在 IPv4 规划的时候就担心 IP 会有不足的情况,而且为了应付某些企业内部的网络设定,于是就有了私有 IP (Private IP) 的产生了。私有 IP 也分别在 A, B, C 三个 Class 当中各保留一段作为私有 IP 网段,分别是:
    Class A:10.0.0.0~10.255.255.255
    Class B:172.16.0.0~172.31.255.255
    Class C:192.168.0.0~192.168.255.255

  3. lo网络:127.0.0.0/8
    lo网络是指主机内部还回网络,主要用于主机测试。

  • 子网掩码Netmask
    子网掩码是用来表示Net_ID和Host_ID的,举例来说:
    计算机网络协议详解_第7张图片
    子网掩码还被用来实现子网划分:
    计算机网络协议详解_第8张图片

  • 路由
    在同一物理网段中,IP地址设置为同一网域,各主机之间可以直接通讯;当IP不在同一网段中时,各主机无法直接通讯,需要经过网关的转递。流程如下:
    1.查询IP数据包的目标IP
    2.查询是否位于本机所在的网络路由表中
    3.查询默认路由
    4.送出数据包至Default Getway后,不予理会

    Linux中查询路由表:route
    在这里插入图片描述

  • ARP协议
    当想要了解某个 IP 是设定于某张以太网络卡上头时,主机会对整个区网发送出 ARP 数据包,对方收到ARP数据包后就会传回他的MAC,主机就会知道对方所在网卡。

3.TCP/IP传输层

  • TCP协议:面向连接、可靠
    TCP数据包封装格式:
    计算机网络协议详解_第9张图片
    TCP报头:
    计算机网络协议详解_第10张图片

  • TCP三次握手
    计算机网络协议详解_第11张图片

  1. A:数据包发起
    当客户端想要对服务器端联机时,就必须要送出一个要求联机的数据包,此时客户端必须随机取用一个大于 1024 以上的端口来做为程序沟通的接口。然后在 TCP 的表头当中,必须要带有 SYN 的主动联机(SYN=1),并且记下发送出联机数据包给服务器端的序号 (Sequence number = 10001) 。
  2. B:数据包接收与确认数据包传送
    当服务器接到这个数据包,并且确定要接收这个数据包后,就会开始制作一个同时带有 SYN=1, ACK=1 的数据包, 其中那个 acknowledge 的号码是要给 client 端确认用的,所以该数字会比(A 步骤)里面的 Sequence 号码多一号 (ack = 10001+1 = 10002), 那我们服务器也必须要确认客户端确实可以接收我们的数据包才行,所以也会发送出一个 Sequence (seq=20001) 给客户端,并且开始等待客户端给服务器端的回应。
  3. C:回送确认数据包
    当客户端收到来自服务器端的 ACK 数字后 (10002) 就能够确认之前那个要求数据包被正确的收受了, 接下来如果客户端也同意与服务器端建立联机时,就会再次的发送一个确认数据包 (ACK=1) 给服务器,亦即是 acknowledge = 20001+1 = 20002 。
  4. D:取得最后确认
    若一切都顺利,在服务器端收到带有 ACK=1 且 ack=20002 序号的数据包后,就能够建立起这次的联机了。
  • UDP协议:无连接、不可靠
    计算机网络协议详解_第12张图片

总结

本篇文章对网络基础知识点进行了概括,重点关注IP、子网掩码和TCP的三次握手。

你可能感兴趣的:(网络基础,网络,linux,网络协议)