码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 网络原理知识


    网络原理

    • 前言
    • 一、网络
    • 二、五层体系结构
    • 三、MAC地址、IP地址、端口、协议
    • 四、UDP、TCP
      • 4.1自定义实现
      • 4.2TCP长连接VS短链接
      • 4.3UDP(重点)
      • 4.3TCP(重点)
      • 4.3TCP连接与管理
      • 小结
      • 4.4断开连接——四次挥手
      • 4.4流量控制
      • 4.4拥塞控制
    • 五、IP地址
    • 六、DNS、NAT、ARP
    • 总结


    前言


    一、网络

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、五层体系结构

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    三、MAC地址、IP地址、端口、协议

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    四、UDP、TCP

    4.1自定义实现

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.2TCP长连接VS短链接

    在这里插入图片描述
    在这里插入图片描述

    4.3UDP(重点)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.3TCP(重点)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.3TCP连接与管理

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    小结

    在这里插入图片描述
    在这里插入图片描述

    4.4断开连接——四次挥手

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    4.4流量控制

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.4拥塞控制

    在这里插入图片描述
    在这里插入图片描述

    五、IP地址

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4。

    4位头部长度(header length):IP头部的长度是多少个32bit,也就是 length * 4 的字节数。4bit表示最大的数字是15,因此IP头部最大长度是60字节。

    8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。

    16位总长度(total length):IP数据报整体占多少个字节。

    16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的。

    3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。

    13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。

    8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数。一般是64。每次经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。

    8位协议:表示上层协议的类型。

    16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏。

    32位源地址和32位目标地址:表示发送端和接收端。

    选项字段(不定长,最多40字节):略。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    六、DNS、NAT、ARP

    在这里插入图片描述
    在这里插入图片描述
    ARP

    虽然我们在这里介绍ARP协议,但是需要强调,ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议;

    ARP协议的作用:ARP协议建立了主机 IP地址 和 MAC地址 的映射关系。

    在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;

    因此在通讯前必须获得目的主机的硬件地址

    总结

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    python实现FINS协议的TCP服务端(篇二)
    git基本使用
    hdfs基础概念和原理
    (附源码)springboot优课在线教学系统 毕业设计 081251
    【Qt】modbus之串口模式写操作
    MySQL DTAETIME、TIMESTAMP、DATE、TIME、YEAR(日期和时间类型)
    UE4 C++:TArray容器
    flutter开发实战-打包应用apk签名及Android studio没有generate signed bundle/apk问题修改
    JAVA基础算法(8)----- 设计循环双端队列
    为k8s节点预留资源,防止pod占用资源过多导致雪崩
  • 原文地址:https://blog.csdn.net/weixin_47270825/article/details/125393519
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号