无论是TCP/IP四层协议还是OSI七层网络协议,传输层的TCP都是非常重要的一个网络协议,众所周知TCP是建立在IP协议之上的点对点可靠的传输协议,不同于IP和UDP,TCP有三次握手、四次挥手等机制可以确保客户端和服务端建立安全的连接和释放连接,并提供拥塞控制、滑动窗口等数据传输机制,但是由于其建立连接的复杂性,演化出了Socket,它是在TCP/IP协议上的一层封装实现,可以通过封装的函数简化用户对TCP/IP协议的使用。经过一段时间的发展,开发者发现Socket在远程调用的语法、参数传递和数据表示上还有一些不够灵活和便捷,于是又演进出了RPC协议,RPC是基于Socket的更上层的网络传输协议,对Socket进行了进一步的抽象和封装,对开发人员使用上更加的友好并且便于扩展,接下来我们就更加详细的讲述下这几种网络协议。

可靠的传输层协议—TCP

首先第一个问题,为什么要有TCP协议?

因为IP协议是不可靠的,它只负责数据包的发送,但它不保证数据包能够被接收、不保证网络包的按序交付和网络包中的数据的完整性。而TCP的出现,正是为了解决这些问题,比如TCP的三次握手就是为了建立安全可靠的连接,滑动窗口解决数据的有序性,超时重传机制则保证数据的相对完整性

TCP三次握手机制

01网络协议:从TCP协议到RPC协议都经历了哪些?相关推荐

  1. 程序员必知必会网络传输之TCP/IP协议族,共864页的详解文档让你原地起飞!

    我们现实网络无处不在,我们被庞大的虚拟网络包围,但我们却对它是怎样把我们的信息传递并实现通信的,我们并没有了解过,那么当我们在浏览器中出入一段地址,按下回车这背后都会发生什么? 比如说一般场景下,客户 ...

  2. 网络协议:TCP三次握手与四次挥手

    本篇内容包括:TCP/IP 传输协议(TCP/IP 传输协议简介,IP 协议,UDP 协议,TCP 协议介绍),TCP 的三次握手.TCP 的四次挥手 以及 TCP 协议是怎么保证有效传输等内容. 一 ...

  3. 既然有HTTP协议,为什么还要有RPC

    我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议? 于是就到网上去搜. 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没 ...

  4. 既然有 HTTP 协议,为什么还要有 RPC

    我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议? 于是就到网上去搜. 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没 ...

  5. TCP/IP篇(1)--协议模型

    TCP/IP参考模型分为四个层次:应用层.传输层.网络互连层和主机到网络层. (1)主机到网络层:实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口, ...

  6. 21天学会Java之(Java SE第十三篇):网络编程、TCP/UDP通信

    如今,计算机已经成为人们学习.工作.生活必不可少的工具.人们利用计算机可以和亲朋好友在网上聊天,玩网游或发邮件等,这些功能的实现都离不开计算机网络.计算机网络实现了不同计算机之间的通信,而这些必须依靠 ...

  7. 网络基本功:TCP报文及可靠性保证

    目录 1.概念了解 2.Socket通信的基本流程 3.TCP报文协议格式 4.TCP的三次握手 5.TCP的四次挥手 6.TCP的数据重传 7.滑动窗口 8.其他 9.小结 10.代码实现 1.概念 ...

  8. vxi11协议服务器的实现,通过VXI-11协议控制LXI仪器

    [摘要] LXI is a kind of bus standard based on LAN,LXI will develop fast in future.The VXI-11 protocol ...

  9. 网络编程(TCP、UDP)

    一.概述 地球村:也译为世界村(global village),对地球的一种比喻说法.现代科技的迅速发展,缩小了地球上的时空距离,国际交往日益频繁便利,因而整个地球就如同是茫茫宇宙中的一个小村落. J ...

  10. 22-05-05 西安 javaSE(18) 网络编程、TCP\IP、Socket通信

    MAC与IP地址 MAC地址 每一块网卡带有的ROM(只读存储器)中,都预先烧录了一个唯一的MAC地址. MAC地址=制造厂商编号+产品编号 所以世界上每一个MAC地址都是独一无二的 IP地址 在互联 ...

最新文章

  1. 中医治疗慢性病很有效
  2. Android移动开发之【Android实战项目】实现每天定时提醒的功能
  3. 函数调用时栈的相关变化
  4. 图解用NetCat连接远程端口
  5. 递归 算例一(求一个简单嵌套字典的深度)
  6. 通过视频着色进行自监督跟踪
  7. Java float类型怎么把小数位数限制为2位
  8. deb 中标麒麟_「图」百度网盘Linux版放出deb包客户端:新增支持Ubuntu 18.04 LTS
  9. linux wifi pro6818,GEC6818连接Ubuntu,下载程序至开发板
  10. html5好看的大方框,这个样式导致HTML5的视频中的按钮变成一个方框。求解决…...
  11. 安全认证Kerberos
  12. OpenGL二维纹理映射(2D textures)
  13. 《人件》 精华版 为软件企业指明成功之路 为开发人员伸张权益
  14. Windows7安装java
  15. 人工智能自动驾驶的意义,人工智能自动驾驶汽车
  16. 分享几个设计精美电路图的工具
  17. QX2601液晶手写板擦写板专用IC芯片
  18. WCDMA通信技术-CFN SFN
  19. [风铃开发系列]IView动态菜单配置
  20. 淘客渠道商备案及流程说明

热门文章

  1. 【面试经验谈】产品设计如何准备自己的面试作品集
  2. 红帽linux安装注意事项
  3. 谈谈如何从本质上理解sql语句, 存储过程,ORM之间的联系和取舍
  4. Ceph 中的 PG 状态详解
  5. 广告拦截器:不要与他们战斗; 了解他们
  6. mysql怎么限制输入男女_mysql 如何限制字段性别为男女
  7. 轻量级物联网嵌入式操作系统 AliOS
  8. 【服务器数据恢复】raid0数据恢复案例raid数据网络回迁过程
  9. Packet Tracer 思科模拟器练习8
  10. 小学计算机课教案书,小学信息技术课教案