本帖最后由 caijie001 于 2019-5-2 11:25 编辑
我回归啦~
lwip源码下载地址
http://download.savannah.gnu.org/releases/lwip/
本文的东西是基础理论知识,因此不必记住,前面的操作系统的**我不想更新了,现在想写一写网络相关的**,本篇**是第一篇,仅传递网络相关知识的概念,不必牢记~
什么是TCP/IP协议
简单来说TCP/IP协议是网络中所有相关协议簇的简称,它是众多网络协议的集合,这一类协议簇是有非常多的协议,如常见的:ARP/TCP/UDP/IP/ICMP/IGMP/HTTP/DNS/DHCP/TFP/MQTT等等
分层思想
TCP/IP模型是一个抽象的分层模型,这个模型中,所有的TCP/IP系列网络协议都被归类到4个抽象的"层"中。每一抽象层创建在低一层提供的服务上,并且为高一层提供服务。 完成一些特定的任务需要众多的协议协同工作,这些协议分布在参考模型的不同层中的,因此有时称它们为一个协议栈。
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统,其分层模型如下:
每一层都负责不同的功能。
链路层
也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
网络层
有时也称作互联网层,处理数据报在网络中的活动,例如数据报路由。其中网络层协议包括IP协议(网际协议), ICMP协议(互联网控制报文协议),以及IGMP协议(英特网组管理协议)。
运输层
运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个传输层协议: TCP(传输控制协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,同时还要确认接收到的数据是正确的,并且将其组装成有序的数据递交到应用层,同时还要处理超时重传、流量控制等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以更加方便来处理数据。
而另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端,因此数据的可靠性必须由应用层来提供,这就导致应用层处理程序的困难,但是对于数据要求不可靠的传输通常使用UDP协议,如视频的播放等。
应用层
应用层就是用户程序,不同的应用会有不一样的操作
运行在TCP协议上的应用程序协议:
HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。
POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。
运行在UDP协议上的应用程序协议:
BOOTP(Boot Protocol,启动协议),应用于无盘设备。
NTP(Network Time Protocol,网络时间协议),用于网络同步。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
其他:
DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
ECHO(Echo Protocol,回绕协议),用于查错及测量应答时间(运行在TCP和UDP协议上)。
SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。
提示:图中的RARP是基本不怎么使用的协议
|