TCP/IP

TCP/IP

要编写一个计算机网络通信的程序, 首先要确定程序之间通信所使用的协议, 协议就是计算机与计算机之间通过网络通信时实现达成的一种约定, 这种约定可以使不同厂商的设备, 不同的 CPU, 以及不同的操作系统组成的计算机之间只要遵循相同的协议就能实现通信。

TCP/IP 是用于因特网(Internet)的通信协议。它是对计算机必须遵守的规则的描述, 只有遵守这些规则, 计算机之间才能通信。

TCP/IP 内部

在 TCP/IP 中包含一系列用于处理数据通信的协议:

  1. TCP - 传输控制协议。TCP 用于从应用程序到网络的数据传输的控制, TCP 负责在数据传送之前将他们分割为 IP 包, 然后在他们到达的时候将这些数据包重组。

  2. IP - 网际协议。IP 负责计算机之间的通信、因特网上发送和接收数据包。

  3. UDP - 用户数据报协议。是一个简单的面向数据报的传输层的协议。

  4. ICMP(因特网消息控制协议)。针对错误和状态, 用于在IP主机、路由器之间传递控制消息。

  5. DHCP(动态主机配置协议)。针对动态寻址, 是一个局域网的网络协议, 使用UDP协议工作, 主要有两个用途: 给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

TCP 提供 IP 环境下的数据可靠传输, 它提供的数据包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说, 它是事先为所发送的数据开辟出连接好的通道, 然后再进行数据发送; 而 UDP 则不为 IP 提供可靠性、流控或差错恢复功能。一般来说, TCP 对应的是可靠性要求高的应用, 而 UDP 对应的则是可靠性要求低、传输经济的应用。

协议的分层(TCP/IP 四层、 OSI 七层)

通常说的 TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的一个大的集合。

网络协议可以分不同的层次进行开发, 每一层分别负责不同的通信功能, TCP/IP 协议族是一组不同层次上的多个协议的组合, 传统上讲, TCP/IP 是一个四层的协议, 而国际标准化组织指定了一个国际标准 - OSI 七层协议模型, OSI 协议以 OSI 参考模型为基础, 制定了每个层的协议和每层之间接口相关的标准, 它们的关系如下图所示:

协议的分层

下面是一些常用的协议:

应用层

应用层的 HTTP(HyperText Transfer Protocol) 负责了 Web 服务器和 Web 浏览器之间的通信, HTTP 用于从 Web 客户端向 Web 服务器发送请求, 并从 Web 服务器向 Web 客户端返回内容。

图中没有列出 HTTPS(Hypertext Transfer Protocol Secure), HTTPS 是安全的 HTTP。HTTPS 经由 HTTP 进行通信, 但利用 SSL/TLS 来加密数据包, 使用于保护所有类型网站上的网页真实性,保护账户和保持用户通信,身份和网络浏览的私密性。

SSL(Secure Sockets Layer) 协议: 叫做安全套接字层。SSL 协议用于为安全的数据传输加密数据。

SMTP(Simple Mail Transfer Protocol): 简单邮件传输协议, 用于电子邮件的传输。

IMAP(Internet Message Access Protocol): 因特网信息访问协议, 用于存储和取回电子邮件。

POP(Post Office Protocol): 邮局协议, 用于从电脑邮件服务商向个人电脑下载电子邮件。最新版本为 POP3(Post Office Protocol - Version 3), 提供了 SSL 加密的 POP3 协议被称为 POP3S。

FTP(File Transfer Protocol): 文件传输协议, 负责计算机之间的文件传输。

SSH(Secure Shell): 安全外壳协议, 是一种加密的网络传输协议, 可在不安全的网络中为网络服务提供安全的传输环境。SSH 通过在网络中建立安全隧道来实现 SSH 客户端与服务器的连接。

网络层

ICMP(Internet Control Message Protocol): 因特网控制报文协议, 负责网络中的错误处理。

不同层的作用:

不同层的作用
  • 应用层: 为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输, 电子邮件, 远程登录(虚拟终端)等协议。

  • 表示层: 将应用处理的信息转换为适合网络传输的格式, 或将来自下一层的传输数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。具体来说, 就是将设备固有的数据格式转换为网络标准传输格式。不同设备对同一比特流解释的结果可能不同。因此, 使他们保持一致是这一层的主要作用、

  • 会话层: 负责建立和断开通信连接(数据流动的逻辑通路), 以及数据的分割等数据传输相关的管理。

  • 传输层: 起着可靠的传输作用。只在通信双方节点上进行处理, 而无需在路由器上处理。

  • 网络层: 将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某个地址。因此这一层主要负责寻址和路由选择。

  • 数据链路层: 负责物理层面上互连的、节点之间的通信传输。例如与 1 个以太网相连的 2 个节点之间的通信。将 0、1 序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。

  • 物理层: 负责 0、1 比特流(0、1 序列)与电压的高低、光的闪灭之间的互换。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,312评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,578评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,337评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,134评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,161评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,303评论 1 280
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,761评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,421评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,609评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,450评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,504评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,194评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,760评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,836评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,066评论 1 257
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,612评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,178评论 2 341

推荐阅读更多精彩内容

  • 版本记录 前言 在互联网行业中,不管你是客户端前端还是后台,只要是与网络相关,你就必须了解一些基础知识,包括这里的...
    刀客传奇阅读 1,866评论 0 16
  • # 图解TCP/IP 标签(空格分隔): 2018招聘 --- ##第1章 网络基础知识 ### ### 1.1 ...
    Kai_a3da阅读 1,429评论 0 2
  • LT-0807,2018.03.11翻译,@成都 声明 本文是一篇关于TCP/IP协议组件的RFC,聚焦于一个IP...
    摩诃婆罗多阅读 4,048评论 1 5
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,032评论 6 174
  • 协议基础 协议就是计算机之间通过网络实现通信时实现所达成的一种“约定”,这种约定使得那些由不同厂商的设备,不同的C...
    d9fc24a0c9a9阅读 2,343评论 0 6