UDP和TCP

为了使多台计算机可以互相连接通信交流,TCP/IP协议就产生了。

TCP/IP 不是一个协议,而是多个协议族的统称,包含多个协议:IP协议,TCP协议,以及HTTP协议,FTP,

UDP,SMTP,POP3等众多协议。

TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称

该协议有2种模型,OSI  7层模型和TCP/IP 4层模型。如图:

四层模型下:

应用层:应用程序通过这层来访问网络。FTP,HTTP,DNS,TELENT协议

  • 传输层:TCP 和UDP 协议 
  • 网络层:IP协议、ARP、ICMP

网络接口层:是TCP/IP协议的基层,复制数据帧的发送和接受。

每一个ip地址是一个32bit的数字,被分为数字 由0-255 组成。分为4组,最长的有12个数字组成。因为记忆12为数字较为困难,

一般使用不需记忆IP,对该IP 起一个别名 --域名。 IP和域名则形成了一一对应的关系,把这个关系存储在域名服务系统(DNS)中。Domain Name System

MAC地址 :Media Access Control ,物理地址,硬件地址,定义互联网中设备的位置。 

在四层模型中,网络层管理IP地址,链路层复制管理MAC 地址。每个网络位置有专属的IP地址,每个主机也有专属的MAC地址

封装:应用程序发送数据,数据在协议层当中由顶向下通过每一层,每一层都对数据添加头部或者尾部信息,这个添加了头部或者尾部的消息叫做 协议数据单元(Protocol Data Unit)

一层:物理层,PDU数据位-bit

二层:数据链路层  PDU数据帧-frame

三层 :网络层  PDU数据包-packet

四层:传输层 PDU数据段-segment

五层:数据 data

如图:

分用 :当主机收到一个数据帧时,数据就从协议层 底层网上,通过每一层后,去掉每一层添加的头部或者尾部,与封装相反

 

 

传输层协议:从网络协议层看,通信的两端是2台主机,ip数据报的头部标明主机的ip地址,从传输层看,是

发送方主机的某一个进程和接收方主机的某一个进程在交换数据。所以 严格说来,通信的双方是进程。

TCP/IP 协议栈传输层有2个重要协议-UDP和TCP

UDP :user datagram protocol 用户数据报协议,主要特点:

  • 无连接状态,发送数据前无需建立链接  减少系统开销和延时
  • 高效率,尽最大能力发送数据交付,但不保证可靠性,可能会丢失数据
  • 没有拥塞机制,出现拥塞时,发送方不会降低发送速率。(视频,ip电话等),出现拥塞时会丢失数据,若不抛弃丢失的数据,会造成时延的积累。
  • 支持一对一,一对多,多对一 和多对多的交互通信。

TCP协议 : 和UDP 同在传输层 

  • 可靠的数据传输服务,面向连接。(三次握手,四次挥手)
  • 点对点,一条tcp链接只能链接2个端点
  • 可靠传输,无差错,不丢失,不重复 按照顺序传输
  • 全双工通信,允许双方同时接受发送消息
  • 面向字节流,仅把数据看作一连串的字节序列,不保证接收方和发送方数据的大小对应关系

tcp 可靠传输的实现 :

首先 tcp报文端的长度是可变的,可以根据接收方和发送方的缓存和网络状态进行实时调整,接收到数据后,将会反馈一个确认消息,而发送方在发送一个报文段后,就会启动一个定时器,等待接收方的反馈消息,如果一定时间内没有收到这个反馈消息,发送方就会将这个报文段重新发送 (超时重传)。在整个过程中,会对数据进行头部和尾部的校验,若果校验后发现报文端有差错,那么这个已经接受到的报文端将会被丢弃,不会返回 确认消息,就等待着发送方超时重传该报文段。

此外 tcp还会将数据按照字节排序,报文段中有序号,按照顺序进行发送,保证顺序正确性。还可以提供流量控制,tcp链接的每一方都有收发缓存。tcp的接收端只允许另一端发送接收端缓冲区中的数据,防止较快主机致使较慢主机的缓冲区溢出。

超时重传:

TCP 规定,接收者收到数据报文段后,需回复一个确认报文段,以告知发送者数据已经收到。而发送者如果一段时间内(超时计时器)没有收到确认报文段,便重复发送。

为了实现超时间重传,需要注意:

  • 发送者发送一个报文段后,暂时保存该报文段的副本,为发生超时重传时使用,收到确认报文后删除该报文段。

  • 确认报文段也需要序号,才能明确是发出去的哪个数据报得到了确认。

  • 超时计时器比传输往返时间略长,但具体值是不确定的,根据网络情况而变。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值