TCP/IP 4层结构:应用层 传输层 网络层 链路层

 
探索过程问题:一个主机的数据要经过哪些过程才到达对方的主机上
一组电信号就是一个数据包,一个数据包称为一帧,制定这个规则的就是以太网协议
 
0 物理介质:
光纤,双绞线,无线电波;都转换成0和1的电信号;不同的物理介质传输带宽 速率 传输距离以及抗干扰性不同;物理介质是网络通讯的基石;
http发送一个请求时,应用层,传输层,网络层和链路层的相关协议依次对 该请求 进行 包装 并 携带对应的首部,最终在 链路层 生成以太网数据包;
对方接收到数据包,就对该数据包一层一层采用对应的协议进行拆包,最后把 应用层数据 交给 应用程序 处理;
路由器把 数据包 通过物理介质转发到各个网关,网关根据数据里面携带的MAC地址,确认是否需要转发到其他网关,当 数据包 到达目标网关之后,网关在根据IP地址找到对应的主机
 
1 链路层:
完整的以太网数据包 :
首部:14字节;包含目标MAC地址 源MAC地址和类型。
数据:46 - 1500字节;如果传输数据超过1500字节 就分割层多个帧进行发送。
尾部:4字节;数据帧校验序列,确认数据包传输过程中是否损坏。
 
接入网络的设备必须安装网络设备器(网卡);
网卡地址就是数据包的发送地址和接收地址 -- 帧首部包含的MAC地址,MAC地址具有全球唯一性,十六进制,6个字节;
以太网采用 广播 形式 把数据包发给我所有子网内的所有主机,主机读取首部里面的MAC地址 跟自己的MAC地址比对,如果不同就丢弃
总结:链路层的主要工作是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方
 
2 网络层:
问题:发送者如何知道接受者的MAC地址?
发送者如何知道接受者和自己属于同个子网?
如果接受者的自己不在同一个子网,数据包如何发给对方?
网络层定义了三个协议:IP协议、ARP协议、路由协议
【1】IP协议
MAC地址与厂商有关,与网络无关;IP地址能够区分两台主机是否在同个网络;
版本:
IPV4、IPV6
32位 4个十进制数字,前半部分表示网络地址,后半部分表示该主机在局域网中的地址。所以能根据网络地址判断是否处于同个子网内。
IP地址和子网掩码通过按位与运算等到网络地址
【2】ARP协议(地址解析协议)
是根据IP地址获取MAC地址的一个网络层协议
ARP的MAC寻址是在同一个子网中
过程:
1ARP发送一个请求数据包 首部包含了目标主机的IP地址
2在链路层进行再次封装,生成以太网数据包,然后由以太网广播给子网内的所有主机
3所有主机收到这个数据包,取出IP地址,然后和自己的IP地址比较。
相同就返回自己的MAC地址
不同就丢弃数据包
4ARP接受返回信息,确定目标机的MAC地址
5同时将返回的MAC地址与对应的IP地址存入本机ARP缓存,下次请求时候直接查询ARP节约资源
【3】路由协议
通过IP协议判断两台主机是否按在同个子网内;
如果在,就通过ARP查询对应的MAC地址,然后以广播的形式向该子网内的所有主机发送数据包;
如果不在,就将该数据包转发给本子网的网关进行路由。
网关:互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将数据包转发到目标IP所在的自王中,然后通过ARP获取目标MAC地址,最终也是通过广播形式将数据包发给接收方
完成这个过程的物理设备就是路由器,扮演交通枢纽的角色,会根据信道情况,选择并设定路由器,以最佳路径转发数据包
【4】IP数据包
在网路层,被包装的数据包叫做IP数据包,IPV4数据包的结构如下图所示:
首部:20字节,目标IP地址和源IP地址 目标IP地址是网关路由的线索和依据;
数据:最大65515字节
 
所以:网路层的主要工作 定义网络地址,区分网段,自网内MAC寻址,对不同子网的数据包进行路由
 
3 传输层:
链路层定义了主机的MAC地址;
网络层定义了IP地址,明确了主机所在的网段;
问题:数据包从主机的某个应用程序发出,由对方主机接收,而每台电脑都可能运行很多应用程序,所以当数据包背发送到主机上之后,是无法确定哪个应用程序要接收这个包的。
解决:传输层映入UDP协议,定义了端口号,同个主机上的每个应用程序都需要制定唯一的端口号,并且规定网络传输的数据包必须加上端口信息。
UDP定义的数据包叫UDP数据包
首部:8个字节 包含端口,目标端口;
数据:65527字节
缺点:没有确认机制,无法知道对方是否收到,可靠性较差;
解决:TCP协议诞生
 
TCP协议(TCP传输控制协议)
面向连接的、可靠的、基于字节流的通信协议。
简单的说:TCP协议就是有确认机制的UDP协议。每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方必须重发这个数据包
为了保证传输的可靠性,TCP协议在UDP基础上建立了三次对话的确认机制,也就是说,在正式手法数据之前,必须和对方建立可靠的连接。三次握手
相比UDP,TCP实现过程复杂,消耗连接资源较多,传输速度慢
总结:传输层的主要工作是定义端口,表示应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性
 
4 应用层:
常见:HTTP FTP SFTP
总结:应用层主要工作是定义数据格式并按照对应的格式解读数据
 
5 全流程:
链路层:对0和1进行分组,定义数据帧,确定主机物理地址,传输数据
网络层:定义IP地址,确认主机所在的网络位置,通过IP获取MAC地址,对外网数据包进行路由转发
传输层:定义端口,确认主机应用程序身份,并把数据包交给应用程序
应用层:接收数据格式,并通过一定的格式解析数据
 

深入浅出TCP与IP协议笔记的更多相关文章

  1. 深入浅出TCP与UDP协议

    深入浅出TCP与UDP协议 网络协议是每个前端工程师的必修课,TCP/IP协议族是一系列网络协议的总和,而其中两个具有代表性的传输层协议,分别是TCP与UDP,本文将介绍这两者以及他们之间的区别. 一 ...

  2. HTTP、TCP、IP协议常见面试题

    前言:在看面试题之前,先了解一下基本定义. HTTP.TCP.IP协议基本定义 HTTP: (HyperText Transport Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数 ...

  3. HTTP要点概述:一,TCP/IP协议族

    一,协议: 计算机与网络设备之间如果要相互通信,双方必须基于相同的方法.比如说,怎么探测到通讯目标,哪一方发起通信,使用哪一种语言通信,怎么结束通信,都需要事先规定.不同硬件,操作系统之间的通信需要一 ...

  4. HTTP、TCP、IP协议面试题

    HTTP.TCP.IP协议基本定义 HTTP: (HyperText Transport Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2 ...

  5. tcp ip协议笔记(1)——简单介绍

    前言 本人记性不佳,看书健忘,以此笔记来记录看书后自己所知所想,已达到加深对tcp ip的理解.本笔记不过我看完书后自己所写的总结,权当是书后复习. 一.为什么会有tcp ip协议        ...

  6. OSI协议和TCP/IP协议笔记

    1.OSI协议: 第7层应用层:OSI中的最高层.是用户与网络的接口.该层通过应用程序来完成网络用户的应用需求,如文件传输.收发电子邮件等.在此常见的协议有:HTTP,HTTPS,FTP,TELNET ...

  7. tcp与ip协议的区别

    TCP/IP(TransmissionControlProtocol/InternetProtocol的简写,中文译名为传输控制协议/互联网络协议). 简单地说,就是由底层的IP协议和TCP协议组成的 ...

  8. 三、tcp、ip协议详细

    1. 什么是 TCP/IP? TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说 TCP/IP 被认为是一个四层协议 1) 网络接口层: 主要是指物理层次的一些接口,比如电缆等 ...

  9. socket http tcp udp ip 协议

    Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接. socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作 ...

随机推荐

  1. 论文翻译:2022_Time-Frequency Attention for Monaural Speech Enhancement

    论文地址:单耳语音增强的时频注意 引用格式:Zhang Q, Song Q, Ni Z, et al. Time-Frequency Attention for Monaural Speech Enh ...

  2. 面试突击75:SpringBoot 有几种读取配置文件的方法?

    Spring Boot 中读取配置文件有以下 5 种方法: 使用 @Value 读取配置文件. 使用 @ConfigurationProperties 读取配置文件. 使用 Environment 读 ...

  3. 基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints

    大家好,我是等天黑. FastEndpoints 是一个基于 .NET 6 开发的开源 webapi 框架,它可以很好地替代 .NET Minimal APIs 和 MVC ,专门为开发效率而生,带来 ...

  4. ARC116 A Odd vs Even (质因数分解,结论)

    题面 有 T T T 组数据,每次给出一个数 N N N ,问 N N N 的所有因数(包括 1 1 1 和 N N N)中奇因数个数和偶因数个数的关系(">"," ...

  5. iOS WebRTC 点对点实时音视频流程介绍

    前言 公司某个项目需要接入音视频即时通讯, 功能类似微信的拨打视频通话,语音通话的场景.那么对于音视频通讯会用到什么技术呢?没错,它就是 WebRTC . 什么是WebRTC WebRTC,名称源自网 ...

  6. MFRC522学习笔记

    MFRC522主要特性 容量为8K位(bits)=1K字节(bytes)EEPROM 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 每个扇区有独立的一组密码及访问控制 每张卡有唯一序 ...

  7. 【android 逆向】破解crackme0502

    1.首先将crackme0502 拖入模拟器.打开应用,随意输出字符串 2. 将APK 拖入AndroidKiller 反编译 3.先查看androidmanifest.xml <?xml ve ...

  8. 华南理工大学 Python第4章课后小测-1

    1.(单选)下面程序的输出结果是: for c in "ComputerScience": print(c,end="") if c=="S" ...

  9. 高德地图与CAD图叠加显示方法汇总及优缺点分析

    前言 ​ 高德地图应用在许多领域,平常我们用的地图导航,除过正常的地图导航指引功能之外,其实还有很多实用的功能.如高德影像地图应用在包括地理.土地测量.水文学.生态学.气象学以及海洋学等方面.Auto ...

  10. 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化

    前文目录链接参考: 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化 https://www.cnblogs.com/yizhiamumu/p/16694126.html 消息队列 ...