网络原理之TCP/IP协议

传输层

传输层五元组:协议号+源IP+源port+目的IP+目的port

协议:网络数据传输时,经过网络节点约定的规则,最终体现为数据格式
IP:在网络层IP协议中包含IP地址这个字段,体现为起点和终点,绑定主机
port:主机中的进程端口,识别进程

注:一个进程可以绑定多个端口号;一个端口号只能绑定一个进程

网络数据传输可以对应发送快递的例子:
网络数据传输类比发送快递

二. UDP传输协议

UDP协议格式
UDP协议格式校验和:类似文件的MD5、sha1值作为校验码,通过一个算法,计算二进制数据,算出一个校验码,类似于Java对象中的hashcode,标识唯一。

UDP的特点

  • 无连接:知道对方的IP和端口号就直接进行传输,不需要建立连接;
  • 不可靠:没有确认机制,没有重传机制;如果因为网络故障,所发送的的段无法发送到对方,UDP协议层也不会给应用层返回任何错误信息;
  • 面向数据报:发送和接收都只能一次完成,不能灵活的控制读写数据的次数和数量;
  • 发送数据大小受限,最多64K,当需要传输的数据超过64K时,就需要在应用层手动分包,多次发送,并且在接收端手动拼装;

基于UDP的应用层协议

  • NFS:网络文件系统
  • TFTP:简单文件传输协议
  • DHCP:动态主机配置协议
  • BOOTP:启动协议(用于无盘设备启动)
  • DNS:域名解析协议

TCP传输协议

概念:TCP全称为“传输控制协议”,要对数据的传输进行一个详细的控制;其设计原则是:网络数据传输,在保证安全的前提下,尽可能的提高传输效率。
TCP协议格式

TCP协议格式

  • 源/目的端口号:表示数据是从哪个进程来,到哪个进程去;
  • 32位序号:它的范围[0,2^32-1],也就是说一共有4294 967 296个序号。TCP中的序号,指的是报文段序号。
  • 32位确认号:对方通过回复一个确认号,来表示确认已经收到了哪些TCP段。
  • 4位TCP报头长度:表示该TCP头部有多少32位bit(有多少4个字节);所以TCP头部的最大长度是15*4=60;
  • 6位标志位:
  • URG:紧急指针是否有效
  • ACK:确认号是否有效
  • PSH:提示接收端应用程序立刻从TCP缓冲区把数据拿走
  • RST:对方要求重新建立连接,我们携带RST标识的称为复位报文段
  • SYN:请求建立连接,我们把携带SYN标识的称为同步报文段
  • FIN:通知对方,本端要关闭了,我们称携带FIN标识的为结束报文段
  • 16位窗口大小:
  • 16位校验和:发送端填充,CRC校验校验,接收端校验不通过,则认为数据有问题,此处校验和不光含TCP首部,也包含TCP数据部分
  • 16位紧急指针:标识哪部分数据是紧急数据
  • 40字节头选项:

TCP的可靠性:

  • 校验和
  • 序列号(按时到达)
  • 确认应答
  • 超时重发
  • 连接管理
  • 流量控制
  • 控制拥塞

提高性能

  • 滑动窗口
  • 快速重传
  • 延时应答
  • 捎带应答

基于TCP应用层协议

  • HTTP
  • HTTPS
  • SSH
  • Telnet
  • FTP
  • SMTP

TCP/UDP对比

TCP是可靠连接,但是TCP也不是一定优于UDP,TCP和UDP之间的优点和缺点,不能简单的绝对的进行比较

  • TCP用于可靠性的情况,应用于文件传输,重要状态更新等场景
  • UDP用于对高速传输和实时性要求较高的通信领域,例如早期的QQ、视频传输等,也可以用于广播。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值