初步了解TCP/IP协议 博客分类: java基础 tcp/ip
转载请注明出处:http://www.pm-road.com/index.php/2015/01/16/344/
目前因项目功能涉及了基于TCP/IP 协议的通讯功能,之前只专注于web 、webservice 的开发,没有具体了解过TCP/IP ,所以翻阅了一些资料,在些初步总结一下。
TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方 式。
在数据传送中,可以形象地理解为有两个信封,TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法,TCP和IP就像 是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网;IP 主要就是用来识别目的服务器,而TCP就是相当于得到服务器后找到相应的端口,而找到新的线程来处理相应的数据。
TCP/IP协议所对应的参考模型是首先由ARPANET所使用的网络体系结构。这个体系结构在它的两个主要协议出现以后被称为TCP/IP参考模 型(TCP/IP Reference Model)。这一网络协议共分为四层:网络访问层、互联网层、传输层和应用层,如下图
而TCP/IP所对应的四层和网络模型还不尽相同,网络模型主要是七层,如下图:
TCP/IP 的四层和网络模型主要有以下区别:
应用层
|
文件传输,电子邮件,文件服务,虚拟终端
|
TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
|
表示层
|
数据格式化,代码转换,数据加密
|
没有协议
|
会话层
|
解除或建立与别的接点的联系
|
没有协议
|
传输层
|
提供端对端的接口
|
TCP,UDP
|
网络层
|
为数据包选择路由
|
IP,ICMP,OSPF,EIGRP,IGMP
|
数据链路层
|
传输有地址的帧以及错误检测功能
|
SLIP,CSLIP,PPP,MTU
|
物理层
|
以二进制数据形式在物理媒体上传输数据
|
ISO2110,IEEE802,IEEE802.2
|
另外,TCP/IP属于是端对端之间的通信,它不会依赖于任何特定的计算机硬件或操作系统,其数据格式为:
数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)
IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)
TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)
TCP/IP提供了高可靠性的数据通信。