热门标签 | 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数据链路层协议

欢迎指正!~


推荐阅读
  • 实例详解ISA防火墙策略元素
    我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许 ... [详细]
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • Shodan简单用法Shodan简介Shodan是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“ ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • 本文摘要配置目的:寄存器配置用于更改路由器启动过程。配置目的:寄存器配置用于更改路由器启动过程。启动位由4位16进制寄存器组成格式:0xA ... [详细]
  • HTTP协议相关的网络经典五层模型
    网络通信相关概念的讲解–网络协议分层(经典五层模型)在我们了解HTTP相关内容之前我们先来了解一下“网络协议分层”相关内容,因为这个是我们了解HTTP相关内容的前提条件;大家有一 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • javaftp上传,javaftp下载文件
    本文目录一览:1、javaftp上传5G以上大文件,怎么做 ... [详细]
  • IP双栈环境下网络应用迁移
    IPv4向IPv6迁移有多种途径,在选择具体的迁移方式时,当前环境中运行的应用是否支持IPv6是重要的考量因素之一,同时在编写新的应用时,需要考虑新编写的应用不仅可以适应当前主流的IPv4环境, ... [详细]
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社区 版权所有