原文连接 blog

TCP / IP 基本概念

世界上几乎所有的 HTTP 协议都是由 TCP / IP 协议来承载的。它是互联网相关的各类协议族的总称(通常所说的规则,就是协议)。

从输入的 URL 里我们可以从中获取服务器端的 IP 地址与端口号,建立一条 TCP 连接。建立连接之后,在客户端和服务器端之间交换的报文,不会丢失,受损,或者失序。

分层

TCP / IP 协议族里最重要的特征就是分层,每一层都靠下一层的支持。TCP / IP 按层次分,分为四层:应用层、传输层、网络层、数据链路层。HTTPS 就是在应用层与传输层之间多了一层安全层。

分层之后,各层只需完成各自特定的问题,而不需要管其他,使得设计变的简单,同时,若某部分需要改变时,也只需改变对应的层,无需改变整体。

应用层

应用层决定了向用户提供应用服务时通信的活动(规定传输的数据格式)。

比如 FTP 文件传输协议,DNS 域名解析系统,HTTP 超文本传输协议也位于此层。

传输层

传输层提供处于网络连接中的两台计算机之间的数据传输,在传输层有两个不同的协议,TCP 和 UDP 协议。

网络层

网络层,用来处理网络上流动的数据包,数据包是网络传输的最小数据单位,该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。

链路层

用来处理网络的硬件部分。如操作系统,设备驱动等。

TCP / IP 通讯传输

HTTP

以 HTTP 为例,在进行网络通信时,发送端会从应用层往下走,接收端则会往应用层往上走。

建立 TCP 连接之后,从客户端发送一条 HTTP 请求报文,会以流的形式,至传输层(TCP协议), 传输层会把从应用层出收到的请求报文进行分割,并在各个报文打上标记序号,及端口号转发给网络层。到达网络层(IP协议)后,增加作为通信目的地的 MAC 地址后转发给链路层。

作为接收端的服务器在链路层接收到数据之后,会一级一级往上传至应用层。

发送端在层与层之间传输数据时,每经过一层,会被打上属于该层的首部信息。
接收端在层与层之间传输数据时,会把每层对应的首部去掉。

HTTPS

HTTPS 方案的 URL 以 https:// 开头,而不是以 http:// 开头,使用 HTTPS时,所有的 HTTP 请求和响应数据在发送到网络之前,都要进行加密。

下图中,对比了 HTTP 与 HTTPS 的不同:

在发送已加密的 HTTP 报文之前,客户端和服务端会进行一次 SSL 握手,在这次握手过程中,他们主要完成以下工作:

  • 交换协议版本号;
  • 选择一个两端都了解的密码;
  • 对两端身份验证;
  • 生成临时的会话秘钥,以便加密通道。

实际过程可能更复杂。

HTTP 协议 - 简单谈谈 TCP / IP (一)相关推荐

  1. 笨办法学C 练习45:一个简单的TCP/IP客户端

    练习45:一个简单的TCP/IP客户端 原文:Exercise 45: A Simple TCP/IP Client 译者:飞龙 我打算使用RingBuffer来创建一个非常简单的小型网络测试工具,叫 ...

  2. 服务器ipv4协议认证,基于TCP/IP应用层密码认证协议的研究

    Internet在全世界盛行,它的基础协议就是传输控制协议/网际协议(TCP/IP).TCP/IP是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来以及传送方式 ...

  3. 因特网的协议集称为TCP/IP协议集

    1)因特网协议集 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...

  4. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_关于TCP/IP,必知必会的十个问题!...

    本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. TCP/IP十个问题 TCP/IP十个问题 一.TCP/IP模型 TCP/IP协议模型(Trans ...

  5. tcp ip协议_网络通信-TCP/IP协议族简述

    导读:计算机与网络设备要相互通信需要遵守同样的规则.例如,如何找到通信目标.该使用哪种语言通信.怎么结束通信等规则.不同的硬件.操作系统之间的通信都需要遵循同一种规则,这种规则也称为是协议.下面本文主 ...

  6. OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系

    OSI七层协议模型.TCP/IP四层模型和五层协议体系结构之间的关系 一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Ses ...

  7. 协议系列之TCP/IP协议

    根据前面介绍的几种协议,将IP协议.TCP协议.UDP协议组合起来,于是便有了TCP/IP协议.现在很多的应用的通信都是建立在TCP/IP协议的基础上,运用非常广泛,很有必要对其学习一下. 打个不太恰 ...

  8. 【揭秘TCP/IP协议簇】——TCP/IP的三次握手建立连接

    转载自:http://hi.baidu.com/senya/blog/item/098ece583e696184800a188c.html Internet是使用TCP/IP协议簇.互联网发展之所以迅 ...

  9. 网络协议漫游-HTTP | TCP/IP | P2P

    网络协议漫游-HTTP | TCP/IP | P2P HTTP协议入水 由三部分组成 状态行(请求行 | 响应行).首部.主体 状态行 首部 主体 HTTP 无状态协议详解 HTTP请求与响应 HTT ...

最新文章

  1. Hexo集成Valine实现评论留言
  2. 把两个文件捆绑压缩成一个文件命令
  3. python输出假分数_分数的表示以及计算(c++)
  4. xd使用技巧_魔兽世界怀旧服老玩家才会的治疗技巧,这四个技能需要看时机选择...
  5. java usecompressedclasspointers_聊聊jvm的CompressedClassSpace
  6. vonic 环境配置_vonic单页面应用
  7. Python的系统管理_08_python_异常处理
  8. java之方法覆盖的坑
  9. little定理的证明,网络的时延模型,little定理的例子
  10. Visio高级使用技巧
  11. rtl 8111 linux 驱动,【驱动】在LINUX(ubuntu)系统下安装RTL8111/8168网卡驱动程序(技嘉H61主板)...
  12. matlab fvtool 滤波器频响
  13. Sublime 使用笔记(九):汉字乱码问题的解决方法
  14. 写给程序员的心理学入门知识(一)
  15. java解密_JAVA加解密
  16. 微信分享获得积分 jquery微信分享获得积分 原理
  17. 楼天城楼教主的acm心路历程 ---- 抄自网上
  18. mv命令:移动、重命名文件或文件夹
  19. 嵌入式操作系统风云录:历史演进与物联网未来Chapter1 第1章
  20. js实现点击图片在屏幕中间弹出放大效果

热门文章

  1. Windows下安装MongoDB
  2. [小型企业]不同vlan配置DHCP服务
  3. MariaDB 10.0.X中,动态列支持 JSON 格式来获取数据
  4. Docker学习笔记 之 Docker安装配置使用
  5. # 20155224 实验四 Android程序设计
  6. 聊Code review(上)
  7. ionic 幻灯指令 ion-slide-box
  8. 十年一遇的奇葩故障--Windows网络编程接口故障:telnet显示无法加载或初始化请求的服务提供程序...
  9. 如何交叉编译 移植 QT
  10. 数据库lib7第2, 3题(创建索引和触发器)