热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1初识网络传输

计算机之间传输媒介是光电信号,通过信号的强弱和频率来表示0和1,但是要知道大量0和1表达的真实意义,就要约定好数据格式。也就产生了各种各样

计算机之间传输媒介是光电信号,通过信号的强弱和频率来表示0和1,但是要知道大量0和1表达的真实意义,就要约定好数据格式。也就产生了各种各样的协议。而网络上的传输也需要协议来标准规范,也就相当于Java和C++中的接口的作用吧。

1.协议分层


  • 为什么要分层?

    分层虽然会导致协议和传输更加复杂,但其最大的好处就是便于"封装"。

接下来就大概讲述两个比较典型的分层模型:1. OSI开放系统互连,七层协议模型 2.TCP/IP五层(四层)协议模型

1.OSI七层模型

是一个逻辑上的定义和规范,把网络从逻辑上分了7层,每层都有相关的对应的物理设备,比如路由器、交换机等。

OSI是一种框架性的设计方案。

主要功能:使不同类型的主机实现数据传输。

优点:将服务、接口、协议这三个概念明确区分开,不同系统不同网络之间实现可靠通信。

缺点:复杂不实用。

分层: 应用层-> 表示层-> 会话层-> 传输层-> 网络层-> 数据链路层-> 物理层

2.TCP/IP五层模型

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

每一层都呼叫它的下一层所提供的网络实现自己的需求。

分层:应用层-> 传输层-> 网络层-> 数据链路层-> 物理层
图片来源:https://blog.csdn.net/u014044812/article/details/91423184
在这里插入图片描述

对于一台主机,它的操作系统内核实现了从 传输层 -> 物理层(端口号)对于一台路由器,它实现了从 网络层 -> 物理层(IP->MAC)对于一台交换机,它实现了从 数据链路层 -> 物理层对于集线器,它只实现了物理层。

接下来说说TCP/IP五层模型中有哪些协议?

应用层: 1.基于UDP: NFS(网络文件系统)、TFTP(简单文件传输)、DHCP(动态主机配置)、BOOTP(无盘设备启动)、DNS(域名解析)2.基于TCP:HTTP、HTTPS、SSH、Telnet、FTP、SMTP传输层: UDP、TCP网络层:IP、ICMP(相当于IP的升级版)、IGMP链路层:以太网协议

2.网络中如何传输数据?


同一网段的两台主机

  • 应用层-> 传输层-> 网络层-> 数据链路层

发送数据:将数据一层一层的包上各个协议头
接收数据:将协议一层一层解开,拿到数据。

不同网段上的两台主机

  • 应用层-> 传输层-> 网络层-> 数据链路层
    网络层包含n个路由器“中转”

比如在浏览器中输入www. baidu. com
1.客户端通过DNS进行域名和IP地址转换,得到baidu的IP地址220.181.27.48,找到客户端到服务器的路径。客户端将数据用HTTP头部包装。
2.在传输层,添加目的端口和源端口,建立与服务器之间的通信连接,将HTTP数据发送出去,并保证数据可靠到达。
3.在网络层,不关心应用层和传输层的东西,要做的就是“查找路径”,通过路由器表确定到达服务器的路径。
4.在数据链路层,查找目的IP的MAC地址,通过链路层发送到路由器,表示的是节点(路由器、主机、链路等)之间的传输。
在这里插入图片描述
(个人理解,如若有偏差请评论赐教,十分感谢)

3.数据包的封装

不同的协议层对数据有不同的称谓。
传输层叫数据段、网络层叫数据报、链路层叫数据帧。

封装: 每到达一层,协议就会给数据加上自己的协议头的行为。

拆包:当数据封装成数据帧后发送到传输介质上,到达目的主机后,每层协议剥掉各自的协议头的行为。

4.两个地址

IP地址
IP地址有两个版本,IPv4和IPv6 。一般是IPv4
作用:标识网络中不同主机地址。
特点:点分十进制。 例如:192.165.0.1
IPv4:占4字节
IPv6:占16个字节

可以这么说,IPv6解决了IPv4的IP数量限制问题,但不是IPv4的升级版,二者没有联系,它并不常用。

MAC地址
相当于硬件地址,是唯一的,在网卡出厂时就确定了,并且不能修改。
作用:识别数据链路层中相连的节点。
MAC:占6个字节
特点:十六进制用冒号分隔,例如:08:00:27:03:fb:19


接下来我们仔细的研究TCP/IP五层模型各个层的常用协议…

HTTP应用层协议详解
UDP和TCP传输层协议
TCP三次握手和四次挥手
IP网络层协议详解
ARP数据链路层协议

欢迎指正!~


推荐阅读
  • 花生壳内网穿透:实现企业智能网关远程管理和维护
    随着物联网技术的发展,企业对智能网关的需求日益增加。本文介绍如何利用花生壳内网穿透技术,实现企业智能网关的远程管理和维护,提高效率,降低成本。 ... [详细]
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 小米路由器AX6000与小米11同步推出,不仅在硬件配置上达到了旗舰级水准,其独特的4K QAM技术更是引领了行业新标准。本文将深入探讨这款路由器的性能表现及其实际应用。 ... [详细]
  • Spring Boot + RabbitMQ 消息确认机制详解
    本文详细介绍如何在 Spring Boot 项目中使用 RabbitMQ 的消息确认机制,包括消息发送确认和消息接收确认,帮助开发者解决在实际操作中可能遇到的问题。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 如何在Windows 7系统中配置和设置无线路由器?
    随着无线设备的普及,如智能手机和平板电脑,WiFi已成为日常生活中的必备功能。许多家庭拥有无线路由器,但不清楚如何正确设置。本文将详细介绍如何在Windows 7系统中配置和设置无线路由器,帮助用户轻松实现稳定高效的无线网络连接。 ... [详细]
  • 本文探讨了在多DHCP服务器环境中如何创建和管理作用域,并提出了一种有效的备用DHCP服务器方案,以确保网络服务的高可用性和稳定性。通过详细的技术分析和实践操作,本文为网络管理员提供了一套完整的解决方案,帮助其更好地应对复杂的网络环境。 ... [详细]
  • 体积小巧的vsftpd与pureftpd Docker镜像在Unraid系统中的详细配置指南:支持TLS加密及IPv6协议
    本文详细介绍了如何在Unraid系统中配置体积小巧的vsftpd和Pure-FTPd Docker镜像,以支持TLS加密和IPv6协议。通过这些配置,用户可以实现安全、高效的文件传输服务,适用于各种网络环境。配置过程包括镜像的选择、环境变量的设置以及必要的安全措施,确保了系统的稳定性和数据的安全性。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 通过FRP技术实现树莓派的内网穿透及远程桌面启动,适用于经常出差且需要访问高性能设备的用户。对于初创公司或小型团队,此方案能有效降低初期投入成本。将服务器部署在偏远地区如家中,可享受较低的运维费用。具体操作包括设置目标电脑的主板,例如华硕主板可通过按F2或Del键进入BIOS进行高级设置。 ... [详细]
  • 虚拟网络连接配置指南旨在详细阐述如何在两台区域边界路由器(ABR)之间,通过一个非骨干区域(即传输区域)建立一条逻辑连接通道。该指南提供了具体的配置步骤和最佳实践,帮助网络管理员高效地实现跨区域的虚拟连接,确保网络的稳定性和可靠性。 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
author-avatar
手机用户2502923227
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有