TCP/IP学习

目录

  • 目录
  • TCPIP
    • 计算机通信协议Computer Communication Protocol
    • 什么是 TCPIP
    • 在 TCPIP 内部
    • TCP 使用固定的连接
    • IP 是无连接的
    • IP 路由器
    • TCPIP
    • TCPIP 寻址
    • IP地址
    • IP 地址包含 4 组数字
    • 比特 4 字节
    • IP V6
    • 域名
    • TCPIP 协议
    • 协议族
    • TCP - 传输控制协议
    • IP - 网际协议Internet Protocol
    • HTTP - 超文本传输协议Hyper Text Transfer Protocol
    • HTTPS - 安全的 HTTPSecure HTTP
    • SSL - 安全套接字层Secure Sockets Layer
    • SMTP - 简易邮件传输协议Simple Mail Transfer Protocol
    • MIME - 多用途因特网邮件扩展Multi-purpose Internet Mail Extensions
    • IMAP - 因特网消息访问协议Internet Message Access Protocol
    • POP - 邮局协议Post Office Protocol
    • FTP - 文件传输协议File Transfer Protocol
    • NTP - 网络时间协议Network Time Protocol
    • DHCP - 动态主机配置协议Dynamic Host Configuration Protocol
    • SNMP - 简单网络管理协议Simple Network Management Protocol
    • LDAP - 轻量级的目录访问协议Lightweight Directory Access Protocol
    • ICMP - 因特网消息控制协议Internet Control Message Protocol
    • ARP - 地址解析协议Address Resolution Protocol
    • RARP - 反向地址转换协议Reverse Address Resolution Protocol
    • BOOTP - 自举协议Boot Protocol
    • PPTP - 点对点隧道协议Point to Point Tunneling Protocol
  • 欢迎使用Markdown编辑器写博客
    • 快捷键
    • Markdown及扩展
      • 表格
      • 定义列表
      • 代码块
      • 脚注
      • 目录
      • 数学公式
      • UML 图
    • 离线写博客
    • 浏览器兼容

TCP/IP


计算机通信协议(Computer Communication Protocol)

计算机通信协议是对那些计算机必须遵守以便彼此通信的的规则的描述。


什么是 TCP/IP?

TCP/IP 是供已连接因特网的计算机进行通信的通信协议。
TCP/IP 指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol)。
TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。


在 TCP/IP 内部

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

  • TCP (传输控制协议) - 应用程序之间通信
  • UDP (用户数据包协议) - 应用程序之间的简单通信
  • IP (网际协议) - 计算机之间的通信
  • ICMP (因特网消息控制协议) - 针对错误和状态
  • DHCP (动态主机配置协议) - 针对动态寻址

TCP 使用固定的连接

TCP 用于应用程序之间的通信:

  • 当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方”握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。
  • 这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。
  • UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。

IP 是无连接的

IP 用于计算机之间的通信。

  • IP 是无连接的通信协议。它不会占用两个正在通信的计算机之间的通信线路。这样,IP就降低了对网络线路的需求。每条线可以同时满足许多不同的计算机之间的通信需要。
  • 通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。
  • IP 负责将每个包路由至它的目的地。

IP 路由器

  • 当一个 IP 包从一台计算机被发送,它会到达一个 IP 路由器。IP 路由器负责将这个包路由至它的目的地,直接地或者通过其他的路由器。
  • 在一个相同的通信中,一个包所经由的路径可能会和其他的包不同。而路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址。

TCP/IP

TCP/IP 意味着 TCP 和 IP 在一起协同工作。

  • TCP 负责应用软件(比如您的浏览器)和网络软件之间的通信。 IP 负责计算机之间的通信。
  • TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。
  • IP 负责将包发送至接受者。

TCP/IP 寻址

TCP/IP 使用 32 个比特或者 4 组 0 到 255 之间的数字来为计算机编址。


IP地址

每个计算机必须有一个 IP 地址才能够连入因特网。
每个 IP 包必须有一个地址才能够发送到另一台计算机。
在本教程下一节,您会学习到更多关于 IP 地址和 IP 名称的知识。


IP 地址包含 4 组数字:

TCP/IP 使用 4 组数字来为计算机编址。每个计算机必须有一个唯一的 4 组数字的地址。
每组数字必须在 0 到 255 之间,并由点号隔开,比如:192.168.1.60。


32 比特 = 4 字节

TCP/IP 使用 32 个比特来编址。一个计算机字节是 8 比特。所以 TCP/IP 使用了 4 个字节。
一个计算机字节可以包含 256 个不同的值:
00000000、00000001、00000010、00000011、00000100、00000101、00000110、00000111、00001000 ……. 直到 11111111。
现在,您应该知道了为什么 TCP/IP 地址是介于 0 到 255 之间的 4 组数字。


IP V6

IPv6 是 “Internet Protocol Version 6” 的缩写,也被称作下一代互联网协议,它是由 IETF 小组(Internet 工程任务组Internet Engineering Task Force)设计的用来替代现行的 IPv4(现行的)协议的一种新的 IP 协议。
我们知道,Internet 的主机都有一个唯一的 IP 地址,IP 地址用一个 32 位二进制的数表示一个主机号码,但 32 位地址资源有限,已经不能满足用户的需求了,因此 Internet 研究组织发布新的主机标识方法,即 IPv6。
在 RFC1884 中(RFC 是 Request for Comments document 的缩写。RFC 实际上就是 Internet 有关服务的一些标准),规定的标准语法建议把 IPv6 地址的 128 位(16 个字节)写成 8 个 16 位的无符号整数,每个整数用 4 个十六进制位表示,这些数之间用冒号(:)分开,例如:
686E:8C64:FFFF:FFFF:0:1180:96A:FFFF
冒号十六进制记法允许零压缩,即一串连续的0可以用一对冒号取代,例如:
FF05:0:0:0:0:0:0:B3可以定成:FF05::B3
为了保证零压缩有一个清晰的解释,建议中规定,在任一地址中,只能使用一次零压缩。该技术对已建议的分配策略特别有用,因为会有许多地址包含连续的零串。
冒号十六进制记法结合有点十进制记法的后缀。这种结合在IPv4向IPv6换阶段特别有用。例如,下面的串是一个合法的冒号十六进制记法:
0:0:0:0:0:0:128.10.1.1
这种记法中,虽然冒号所分隔的每一个值是一个16位的量,但每个分点十进制部分的值则指明一个字节的值。再使用零压缩即可得出:
::128.10.1.1


域名

12 个阿拉伯数字很难记忆。使用一个名称更容易。
用于 TCP/IP 地址的名字被称为域名。runoob.com 就是一个域名。
当你键入一个像 http://www.runoob.com 这样的域名,域名会被一种 DNS 程序翻译为数字。
在全世界,数量庞大的 DNS 服务器被连入因特网。DNS 服务器负责将域名翻译为 TCP/IP 地址,同时负责使用新的域名信息更新彼此的系统。
当一个新的域名连同其 TCP/IP 地址一起注册后,全世界的 DNS 服务器都会对此信息进行更新。


TCP/IP 协议


协议族

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


TCP - 传输控制协议

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


IP - 网际协议(Internet Protocol)

IP 负责计算机之间的通信。
IP 负责在因特网上发送和接收数据包。


HTTP - 超文本传输协议(Hyper Text Transfer Protocol)

HTTP 负责 web 服务器与 web 浏览器之间的通信。
HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。


HTTPS - 安全的 HTTP(Secure HTTP)

HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。
作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。


SSL - 安全套接字层(Secure Sockets Layer)

SSL 协议用于为安全数据传输加密数据。


SMTP - 简易邮件传输协议(Simple Mail Transfer Protocol)

SMTP 用于电子邮件的传输。


MIME - 多用途因特网邮件扩展(Multi-purpose Internet Mail Extensions)

MIME 协议使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。


IMAP - 因特网消息访问协议(Internet Message Access Protocol)

IMAP 用于存储和取回电子邮件。


POP - 邮局协议(Post Office Protocol)

POP 用于从电子邮件服务器向个人电脑下载电子邮件。


FTP - 文件传输协议(File Transfer Protocol)

FTP 负责计算机之间的文件传输。


NTP - 网络时间协议(Network Time Protocol)

NTP 用于在计算机之间同步时间(钟)。

DHCP - 动态主机配置协议(Dynamic Host Configuration Protocol)

DHCP 用于向网络中的计算机分配动态 IP 地址。

SNMP - 简单网络管理协议(Simple Network Management Protocol)

SNMP 用于计算机网络的管理。

LDAP - 轻量级的目录访问协议(Lightweight Directory Access Protocol)

LDAP 用于从因特网搜集关于用户和电子邮件地址的信息。

ICMP - 因特网消息控制协议(Internet Control Message Protocol)

ICMP 负责网络中的错误处理。

ARP - 地址解析协议(Address Resolution Protocol)

ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。

RARP - 反向地址转换协议(Reverse Address Resolution Protocol)

RARP 用于通过 IP 查找基于硬件地址的计算机网卡的 IP 地址。

BOOTP - 自举协议(Boot Protocol)

BOOTP 用于从网络启动计算机。

PPTP - 点对点隧道协议(Point to Point Tunneling Protocol)

PPTP 用于私人网络之间的连接(隧道)。

欢迎使用Markdown编辑器写博客

本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:

  • Markdown和扩展Markdown简洁的语法
  • 代码块高亮
  • 图片链接和图片上传
  • LaTex数学公式
  • UML序列图和流程图
  • 离线写博客
  • 导入导出Markdown文件
  • 丰富的快捷键

快捷键

  • 加粗 Ctrl + B
  • 斜体 Ctrl + I
  • 引用 Ctrl + Q
  • 插入链接 Ctrl + L
  • 插入代码 Ctrl + K
  • 插入图片 Ctrl + G
  • 提升标题 Ctrl + H
  • 有序列表 Ctrl + O
  • 无序列表 Ctrl + U
  • 横线 Ctrl + R
  • 撤销 Ctrl + Z
  • 重做 Ctrl + Y

Markdown及扩展

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。

本编辑器支持 Markdown Extra ,  扩展了很多好用的功能。具体请参考Github.

表格

Markdown Extra 表格语法:

项目 价格
Computer $1600
Phone $12
Pipe $1

可以使用冒号来定义对齐方式:

项目 价格 数量
Computer 1600 元 5
Phone 12 元 12
Pipe 1 元 234

定义列表

Markdown Extra 定义列表语法:
项目1
项目2
定义 A
定义 B
项目3
定义 C

定义 D

定义D内容

代码块

代码块语法遵循标准markdown代码,例如:

@requires_authorization
def somefunc(param1='', param2=0):
    '''A docstring'''
    if param1 > param2: # interesting
        print 'Greater'
    return (param2 - param1 + 1) or None
class SomeClass:
    pass
>>> message = '''interpreter
... prompt'''

脚注

生成一个脚注1.

目录

[TOC]来生成目录:

  • 目录
  • TCPIP
    • 计算机通信协议Computer Communication Protocol
    • 什么是 TCPIP
    • 在 TCPIP 内部
    • TCP 使用固定的连接
    • IP 是无连接的
    • IP 路由器
    • TCPIP
    • TCPIP 寻址
    • IP地址
    • IP 地址包含 4 组数字
    • 比特 4 字节
    • IP V6
    • 域名
    • TCPIP 协议
    • 协议族
    • TCP - 传输控制协议
    • IP - 网际协议Internet Protocol
    • HTTP - 超文本传输协议Hyper Text Transfer Protocol
    • HTTPS - 安全的 HTTPSecure HTTP
    • SSL - 安全套接字层Secure Sockets Layer
    • SMTP - 简易邮件传输协议Simple Mail Transfer Protocol
    • MIME - 多用途因特网邮件扩展Multi-purpose Internet Mail Extensions
    • IMAP - 因特网消息访问协议Internet Message Access Protocol
    • POP - 邮局协议Post Office Protocol
    • FTP - 文件传输协议File Transfer Protocol
    • NTP - 网络时间协议Network Time Protocol
    • DHCP - 动态主机配置协议Dynamic Host Configuration Protocol
    • SNMP - 简单网络管理协议Simple Network Management Protocol
    • LDAP - 轻量级的目录访问协议Lightweight Directory Access Protocol
    • ICMP - 因特网消息控制协议Internet Control Message Protocol
    • ARP - 地址解析协议Address Resolution Protocol
    • RARP - 反向地址转换协议Reverse Address Resolution Protocol
    • BOOTP - 自举协议Boot Protocol
    • PPTP - 点对点隧道协议Point to Point Tunneling Protocol
  • 欢迎使用Markdown编辑器写博客
    • 快捷键
    • Markdown及扩展
      • 表格
      • 定义列表
      • 代码块
      • 脚注
      • 目录
      • 数学公式
      • UML 图
    • 离线写博客
    • 浏览器兼容

数学公式

使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.

  • 行内公式,数学公式为: Γ(n)=(n1)!nN
  • 块级公式:

x=b±b24ac2a

更多LaTex语法请参考 这儿.

UML 图:

可以渲染序列图:

Created with Raphaël 2.1.0 张三 张三 李四 李四 嘿,小四儿, 写博客了没? 李四愣了一下,说: 忙得吐血,哪有时间写。

或者流程图:

Created with Raphaël 2.1.0 开始 我的操作 确认? 结束 yes no
  • 关于 序列图 语法,参考 这儿,
  • 关于 流程图 语法,参考 这儿.

离线写博客

即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。

用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。

博客发表后,本地缓存将被删除。 

用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱

浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
  2. IE9以下不支持
  3. IE9,10,11存在以下问题
    1. 不支持离线功能
    2. IE9不支持文件导入导出
    3. IE10不支持拖拽文件导入


  1. 这里是 脚注内容. ↩

你可能感兴趣的:(TCP/IP学习)