i3geek.com
闫庚哲的个人博客

远程通信的方式及选择(一)——IP协议 TCP/UDP协议基础

网络层次

应用层 — HTTP协议
传输控制层 — TCP/UDP协议 -> Socket封装

网络层 — IP协议、ICMP协议

IP协议

IP协议处于网络层,用于更底层(数据链路层)与上层传输控制层(TCP/UDP)之间传输数据。通过解析或指定目的地址的IP,来确定一条网络计算机中的链路。

简单来说,就是通过IP来确定一台网络上的电脑,确立一条网络路径。

协议头:

  • 版本:占4位,指IP协议的版本。
  • 首部长度:占4位,可表示的最大十进制数值是15。
  • 区分服务:占8位,用来获得更好的服务。
  • 总长度:总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
  • 标识(identification):占16位。
  • 标志(flag):占3位,但目前只有2位有意义。
  • 片偏移:占13位。
  • 生存时间:占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。
  • 协议:占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
  • 首部检验和:占16位。
  • 源IP地址:占32位。
  • 目的IP地址:占32位。

主要包含:IMCP协议(ping)、IP协议(TCP/IP协议组)

TCP协议

TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。

协议头(20字节):

  • 源端口号[2字节]
  • 目的端口号[2字节]
  • SEQ序号[4字节]
  • ACK序号[4字节]
  • 偏移[0.5字节]
  • Reserved [0.5字节]
  • 标志[1字节]
  • 窗口大小(window)[2字节]
  • 校验和[2字节]
  • 紧急指针[2字节]

主要涉及技术:三次握手链接、四次挥手关闭链接、TCP可靠性的保证(带重传功能的肯定确认)、滑动窗口技术

UDP协议

UDP协议也是传输层协议,它是无连接,不保证可靠的传输层协议。

协议头(8字节):

  • 源端口号[2字节]
  • 目的端口号[2字节]
  • Length[2字节]
  • 校验和[2字节]

TCP/IP协议

传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

通过层次结构中可以看到,TCP/IP协议涉及到网络层和传输控制层,可以说是网络传输的基础。设备连接入网络,比如手机设备,就是实现了底层TCP协议后才可以在网络上进行传输。

TCP、UDP和TCP/IP协议的小结

TCP

提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。TCP通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送。

TCP对应的是可靠性要求高的应用,支持的应用协议主要有:Telnet、FTP、SMTP等

UDP

UDP则不为IP提供可靠性、流控或差错恢复功能

UDP对应的则是可靠性要求低、传输经济的应用,支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等

TCP和UDP区别:

  1. 基于连接与无连接;
  2. 对系统资源的要求(TCP较多,UDP少);
  3. UDP程序结构较简单;
  4. 流模式与数据报模式 ;
  5. TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

TCP/IP协议和UDP协议的关系

TCP/IP是协议族,由TCP和IP协议构成,TCP负责发现问题,请求重传,IP负责确立链路链接。

UDP是不可靠传输,也可以说是UDP/IP协议族,可是一般情况下意义不大,比较传输层都是会经过网络层的。

赞(0)
未经允许不得转载:爱上极客 » 远程通信的方式及选择(一)——IP协议 TCP/UDP协议基础
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址