程序员需要掌握的一些网络协议汇总

今天我们来看下各层的网络协议 , 虽然开发过程中写代码不会直接涉及 , 但是理解好网络协议对编程和理解系统的整个运行过程是非常有帮助的哦 。

程序员需要掌握的一些网络协议汇总

文章插图
 
一、应用层协议1、HTTP
HTTP(HyperText Transfer Protocol , 超文本传输协议)用于从万维网(WWW)服务器传输超文本到本地浏览器 , 是一个基于TCP/IP通信协议来传递数据(html 文件, 图片文件, 查询结果等)的协议 。
2、FTP
FTP(File Transfer Protocol) , 即文件传输协议 。FTP协议包含FTP服务器和FTP客户端两部分 , 其中FTP服务器用来存储文件 , 用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源 。
3、NFS
NFS(NetworkFileSystem) , 即网络文件系统 , 是一种用于文件共享的协议 , 主要用于主机之间进行文件的共享 。通过使用NFS , 用户和程序可以像访问本地文件一样访问远端系统上的文件 。
4、SMTP
SMTP(Simple Mail Transfer Protocol) , 即简单邮件传输协议 , 是互联网上传输邮件的事实标准 , 用于由源地址到目的地址传送邮件并控制信件的中转方式 。
5、DNS
DNS(DomainNameSystem) , 即域名系统 , 是用来将域名解析到IP地址的一种协议(而ARP协议是用来将IP地址转换为mac地址的协议) 。
二、传输层协议 
1、TCP
TCP(Transmission Control Protocol) , 即传输控制协议 , 是一种面向连接的、可靠的、面向字节流的、全双工的传输层通信协议 。
2、UDP
UDP(User Datagram Protocol) , 即用户数据报协议 , 是无连接的、不可靠的、面向报文的传输层协议 。UDP始终以恒定的速率发送数据 , 没有拥塞控制;UDP支持一对一、一对多、多对多、多对一通信,而TCP只支持一对一通信;UDP首部开销小 , 只有8字节 , 而TCP头部至少由20字节 , 相比于TCP要高效很多 。
三、网络层协议 
1、IP协议
IP(Internet Protocol Address) , 网络之间互连的协议 , 协议由主机到主机协议调用 , 负责调用本地网络协议将数据包传送以下一个网关或目的主机 。可以理解为 , 为了实现各主机间的通信 , 每台主机都必须有一个唯一的网络地址 , 不至于在传输数据时出现混乱 。IP地址是门牌号 , 而IP协议负责找到门牌号 。
IP协议的主要功能是:寻址和路由、传递服务和数据包的分片重组 。
2、ARP协议
ARP(Address Resolution Protocol)协议 , 又叫地址解析协议 , 是根据IP地址获取物理地址的一个TCP/IP协议 。其中有个ARP攻击的概念 , 大家可以了解下 。ARP攻击主要存在于在局域网中 , 就是通过伪造IP地址和MAC地址实现ARP欺骗 , 能够在网络中产生大量的ARP通信量使网络阻塞 。

【程序员需要掌握的一些网络协议汇总】


    推荐阅读