0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全硬件TCP/IP协议栈学习笔记(第一天:TCP/IP协议学习一)

学FPGA,慢慢来 2017-12-18 10:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一.为什么会有TCP/IP协议

首先呢,TCP/IP不是一个协议,而是一个协议族的统称。他们的存在是为了在将电脑联合起来的时候,利用他们可以和其他的计算机终端做自由的交流。

二.TCP/IP协议分层

1.TCP/IP族按照层次由上到下,层层包装。每一层都有自己的功能,每一层都有下一层的支持。而用户接触的,只是最上边一层,没有感觉到下面一层层,但是理解的时候要从最下层由下向上来理解。最上边是应用层,这里有http,ftp等熟悉的协议。而第二层就是传输层,TCP和UDP协议就是在这个层次。第三层是网络层,IP协议就在这里,他负责对数据加上IP地址和其他数据以确定传输的目标。第四层叫做数据链路层,这个层次为待传输的数据加上一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。再往下就是硬件层次,负责网络的传输,这个层次的定义包括网线的格式,网卡的定义等等。

2.发送协议的主机从上到下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。这种结构非常像栈,所以我们也把TCP/IP协议族称为TCP/IP栈。

3.每一层都是为了完成一种功能,为了实现这些功能,需要大家每个人都要遵循共同的规则,而这个规则就叫做“协议”。互联网的每一层都定义了许多协议。而这些协议的总称,就叫做“互联网协议”,他们是互联网的核心。

三.基本常识

1.互联网地址(IP地址):网络上的每一个节点都必须有一个独立的Internet地址,也叫IP地址。通常使用的IP地址是一个32bit的数字,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。需注意,IP地址是网络号+主机号的组合,这十分重要。

2.域名系统:域名系统就是一个分布的数据库,它提供将主机名(就是网址)转换成IP地址的服务。

3.RFC:TCP/IP协议的标准文档。他一共有4000多个协议的定义。

4.端口号:这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口。平时所说的把某某的端口封掉,也只是在IP层次把带有这个号码的IP包滤掉了而已。

5.应用编程接口(API):现常用的编程接口有socket和TLI。主要是提供应用程序和开发人员以访问一组例程功能,而无需考虑其底层的源代码是为何,或理解其内部工作机制的细节。

四.实体层

就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。

五.数据链路层

单纯的0和1没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号为有何意义?

这就是“连接层”的功能,他在“实体层”的上方,确定了0和1的分组方式。

数据链路层有三个目的:

1.为IP模块发送和接收IP数据报。

2.为ARP模块发送ARP请求和接收ARP应答。

3.为RARP发送RARP请求和接收RARP应答。

注:ARP:地址解析协议,是用IP地址换MAC地址(媒体访问地址,或称为物理地址,硬件地址。MAC地址是网卡决定的,是固定的,共48位,实际上就是适配器地址,IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位既可以让甲坐,也可以让乙坐,同样的道理一个结点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。)的一种协议,而RARP则叫做逆地址解析协议。

以太网的定义是指数字设备公司( Digital Equipment Corp.)、英特尔公司(Intel Corp.)和Xerox公司在1982年联合公布的一个标准。以太网规定,一组电信号构成一个数据包,叫做“帧”,每一帧分成两个部分:标头(head)和数据(data)。

标头包含了数据包的一些说明项,比如发送者,接受者,数据类型等;“数据”包括了数据包的具体内容。标头的长度固定为18字节。数据的长度最长为1500字节,最短为46字节。因此,整个“帧”最长为1518字节,最短为64字节。如果数据很长,就必须分割成多个帧进行发送。

以太网规定,连入网络的所有设备,都必须具有“网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这就是MAC地址。

定义地址只是第一步,在这之后要解决一块网卡如何知道另一块网卡的MAC地址?回答是一种ARP协议。而在以太网数据包必须知道接收方的MAC地址,然后才能发送。

之后就算有了MAC地址,系统如何才能把数据包准确的发送到接收方?,而以太网采用用了一种很原始的方式,即向本网络内的所有计算机发送,让每台计算机自己判断,是否为接收方。他们读取这个包的“标头”,找到接收方的MAC地址,然后与自身的MAC地址进行比较,如果两者相同,就接受这个包,作进一步处理,否则就丢弃这个包,这种发送方式就叫做广播。

有了数据包的定义,网卡的MAC地址,广播的发送方式,“连接层”就可以在多台计算机之间传输数据。

六.网络层

1.由来:以太网协议,依靠MAC地址发送数据。但是,以太网采用广播来发送数据包,效率低,而且局限在发送者所在的子网络。因此,要找到一种方法,能够区分那些MAC地质属于同一个子网络,那些不是。如果是同一个子网络,就采用广播,否则采用路由(...)方式发送,而这是MAC地址无法实现的,他至于厂商有关,与所处网络无关,这就导致了“网络层”的诞生,他的作用就是引用一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。而这套地址就叫做“网络地址”,简称“网址”。于是,“网络层”出现之后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,他们是随机组合在一起的。

网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据报送到该子网络中的目标网卡,因此,先处理网络地址,在处理MAC地址。

2.IP协议

规定网络地址的协议,叫做IP协议。他所规定的地址,就被称为IP地址。我们采用的一般是IPv4.这个版本规定,网络地址由32个二进制位组成。习惯上分为四段,如255.255.255.255,这个地址分成两部分,前一部分代表网络,后一部分代表主机。但是单从IP地址,我们无法分辨网络部分。因此,我们需要一个参数来判断两台计算机是否属于同一个子网络,这个参数就是“子网掩码”,它在形式上等同于IP地址,也是一个32位的二进制数,他的网络部分全部为1,主机部分为0.知道子网掩码我们就可以判断两个IP地址是否属于同一个自网络下,方法就是将两个IP地址与子网掩码分别进行AND运算。,比较结果是否相同,如果是的话,就表明在同一个子网络中。

所以,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定那些地址在同一个子网络。

3.IP数据包

根据IP协议发送的数据,就叫做IP数据包。其中包含IP地址信息。但是由于以太网数据包只包含MAC地址,并没有IP地址栏,但我们也并不需要为他添加一个栏位,我们将IP数据包直接放进以太网数据包的“数据”中,而不用修改以太网的规格,这就是互联网分层的好处:上层的变动完全不涉及下层的结构。IP数据也分为“标头”和“数据”两部分,"标头"主要是版本,长度,IP地址,“数据”部分则是IP数据包的具体内容。他放在以太网数据包后,就是这样

IP数据包的“标头”部分的长度为20到60字节,整个数据包的总长度最大为65535字节,因此,一个IP数据包的“数据”部分最长为65515字节。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630192
  • 嵌入式
    +关注

    关注

    5186

    文章

    20145

    浏览量

    328758
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么会有TCP/IP协议

    见了面,完全不能交流信息。因而他们需要定义些共通的东西来进行交流,TCP/IP就是为此而生。TCP/IP不是
    发表于 12-03 06:28

    快速掌握TCP/IP?LuatOS新手入门指南

    仅是互联网的通信基石,更像是套精妙绝伦的“世界语”,让形态各异、遍布全球的设备能够跨越硬件和软件的差异,使用统的规则进行对话。   相比传统开发方式,LuatOS通过高效易用的API:将复杂的
    的头像 发表于 10-15 17:27 448次阅读
    快速掌握<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>?LuatOS新手入门指南

    EtherNet/IP转Modbus TCP网关,让设备对话更简单!

    在工业自动化与物联网飞速发展的今天,不同协议设备之间的互联互通已成为企业提升生产效率、实现智能化升级的关键挑战。如何让支持EtherNet/IP的PLC、伺服系统与基于Modbus TCP
    的头像 发表于 09-19 16:30 546次阅读
    EtherNet/<b class='flag-5'>IP</b>转Modbus <b class='flag-5'>TCP</b>网关,让设备对话更简单!

    rtthread网络接口设备 轻量级tcp/ip 堆栈 这两个冲突吗?

    需要使用 lwip 上图中 网络接口设备 需要使能么? 上图中 网络接口设备 是干嘛用的?是个比lwip 功能弱的tcp/ip 协议
    发表于 09-18 06:16

    GraniStudio : TCP/IP(Socket)协议深度剖析

    在工业自动化与物联网领域,TCP/IP(Socket)协议作为应用最广泛的网络通信标准,是实现设备间数据交互的核心技术。GraniStudio 软件作为工业级零代码开发平台,其内置的 TCP
    的头像 发表于 08-03 22:20 895次阅读
    GraniStudio : <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>(Socket)<b class='flag-5'>协议</b>深度剖析

    什么是Modbus TCP协议

    TCP/IP协议,通过以太网进行通信,并支持多个设备同时访问同个Modbus TCP服务器
    的头像 发表于 07-23 17:18 3267次阅读
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>

    生物制药自动化升级:Modbus TCP与Ethernet/IP协议转换实践

    Ethernet/IP),直接通信存在障碍。为此通过稳联技术的Modbus TCP与Ethernet/IP网关,实现两种协议的无缝转换,确保数据实时交互和设备精准控制。 1、打开RSL
    的头像 发表于 06-17 18:34 413次阅读
    生物制药自动化升级:Modbus <b class='flag-5'>TCP</b>与Ethernet/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>转换实践

    51+单片机TCP-IP+协议ZLIP源码

    概述 单片机上网技术,是当前的个热门技术。单片机上网技术中的个重要部分是在单片上实现 TCP/IP 协议
    发表于 04-22 15:11

    RT-Thread Ethernet/IP 协议技术实践|技术集结

    Ethernet/IP(以太网工业协议)是种基于标准以太网架构的工业通信协议,广泛应用于自动化和控制系统中。它结合了TCP/
    的头像 发表于 04-08 18:47 1699次阅读
    RT-Thread Ethernet/<b class='flag-5'>IP</b> <b class='flag-5'>协议</b>技术实践|技术集结

    EtherNet/IP转Modbus TCP:新能源风电监控与分析实用案例

    的控制系统、变流器等采用 MODBUS TCP 协议的设备以及基于 EtherNet/IP 协议的远程监控系统和数据分析系统均已正常运行且网络连接正常。 二、
    的头像 发表于 02-17 15:54 691次阅读
    EtherNet/<b class='flag-5'>IP</b>转Modbus <b class='flag-5'>TCP</b>:新能源风电监控与分析实用案例

    EtherNet/IP转Modbus TCP在新能源风力发电场远程监控与数据分析的配置案例

    到风电场的局域网。确保风力发电机组的控制系统、变流器等采用 MODBUS TCP 协议的设备以及基于 EtherNet/IP 协议的远程监控系统和数据分析系统均已正常运行且网络连接正常
    的头像 发表于 02-10 15:54 612次阅读
    EtherNet/<b class='flag-5'>IP</b>转Modbus <b class='flag-5'>TCP</b>在新能源风力发电场远程监控与数据分析的配置案例

    如何优化TCP协议的性能

    优化TCP协议的性能可以从多个方面入手,以下是些关键的策略和方法: 、调整TCP参数 TCP
    的头像 发表于 01-22 09:52 1454次阅读

    TCP协议的安全性分析

    1. TCP协议的基本特性 TCP协议的主要目的是确保数据的可靠传输。它通过以下机制实现这目标: 数据分段和重组 :
    的头像 发表于 01-22 09:48 1222次阅读

    TCP协议与UDP协议的区别

    1. 连接性 TCP(传输控制协议) : 面向连接 :在数据传输之前,TCP需要建立个连接,这通过三次握手过程完成。 可靠性 :旦连接建
    的头像 发表于 01-22 09:44 1739次阅读

    什么是TCP协议及其工作原理

    在现代网络通信中,数据的传输需要依赖于套复杂的协议来确保数据的完整性和可靠性。TCP协议作为这些协议中的关键
    的头像 发表于 01-22 09:41 2198次阅读