计算机网络协议详解怎么写_自考短线好还是长线好

计算机网络协议详解怎么写_自考短线好还是长线好计算机网络协议详解:本篇文章主要总结一些常见的网络基础概念以及Linux系统中的网络相关设置方法,具体包括OSI七层协议、TCP/IP协议相关内容。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用


计算机网络协议详解

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


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

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

OSI七层协议

  • 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协议。

OSI与TCP/IP的相关性

1.TCP/IP网络接口层

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

CSMA/CD

  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地址。
    IP数据包的封装

  • IP地址

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

    以二进制说明Network第一个数字的定义:
    在这里插入图片描述
    五种分级的十进制表示:
    在这里插入图片描述

  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的,举例来说:
    Netmask
    子网掩码还被用来实现子网划分:
    在这里插入图片描述

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

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

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

3.TCP/IP传输层

  • TCP协议:面向连接、可靠
    TCP数据包封装格式:
    在这里插入图片描述
    TCP报头:
    在这里插入图片描述

  • TCP三次握手
    在这里插入图片描述

  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协议:无连接、不可靠
    在这里插入图片描述

总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186873.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • HDU5432-Pyramid Split[通俗易懂]

    HDU5432-Pyramid Split[通俗易懂]最近以各种借口偷懒了,上次BC的题一直也没补,今天才补完第一题,非常好过,可当时就是想不通~#include#include#include#defineeps1e-5doublea[10005],b[10005];intn;intbSearch(doublebegin,doubleend,doublee){doublemid,left=begi

  • Android中mesure过程详解 –[通俗易懂]

    Android中mesure过程详解 –[通俗易懂]invalidate()最后会发起一个View树遍历的请求,并通过执行performTraersal()来响应该请求,performTraersal()正是对View树进行遍历和绘制的核心函数,内部的

  • ArrayDeque in Java[通俗易懂]

    ArrayDeque in Java[通俗易懂]ArrayDequeinJavaArrayDequeinJavaprovidesawaytoapplyresizable-arrayinadditiontotheimplementationoftheDequeinterface.ItisalsoknownasArrayDoubleEndedQueueorArrayDeck.Thi…

  • rapidgator怎么下东西_rapid

    rapidgator怎么下东西_rapid有时,可能想下载这里的文件.先要点到这里:正在下载文件,然后等一会儿.然后点慢速下载,然后有个九宫格验证.最后出现单击此处下载.要注意,是能够下载的.有时,一本书,不知道在哪去下载,那么搜索其asin号.如B08KLP3R9Y,然后就找到下载地址了….

  • IDEA 安装步骤「建议收藏」

    IDEA 安装步骤「建议收藏」1、下载与安装下载地址:https://www.jetbrains.com下载完成后安装选择安装的位置安装完成激活码:K03CHKJCFT-eyJsaWNlbnNlSWQiOiJLMDNDSEtKQ0ZUIiwibGljZW5zZWVOYW1lIjoibnNzIDEwMDEiLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoi…

  • android 系统签名

    android 系统签名最近在做个东西,巧合碰到了sharedUserId的问题,所以收集了一些资料,存存档备份。   安装在设备中的每一个apk文件,Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户都会被分配到一个属于自己的统一的Linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID在应用程序安装到设

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号