TCP/IP简介

一、TCP/IP北京和介绍

上世纪 70 年代,随着计算机技术的发展,计算机使用者意识到:要想发挥计算机更大的作用,就要将世界各地的计算机连接起来。但是简单的连接是远远不够的,因为计算机之间无法沟通。因此设计一种通用的“语言”来交流是必要可少的,这时 TCP/IP 协议就应运而生了。

  TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了点设备如何连入互联网,以及数据如何在他们之间传输的标准。TCP/IP不是一个协议,而是一个协议族的统称,里面包括了IP协议、ICMP协议、TCP协议、以及http、ftp、pop3协议等。网络中的计算机都采用这套协议族进行互联。

二、网络协议栈架构

  提到网络协议栈架构,最著名的当属OSI七层模型,但是TCP/IP协议族的结构则稍有不同,他们之间的层次结构如图所示:

可见TCP/IP被分为4层,每层承担的任务不一样,各层的协议的工作方式也不以昂,每层封装上层的数据的方式也不一样。

    (1)应用层:应用程序通过这一层访问网络,常见 FTP、HTTP、DNS 和 TELNET 协议;

    (2)传输层:TCP 协议和 UDP 协议;

    (3)网络层:IP 协议,ARP、RARP 协议,ICMP 协议等;

    (4)网络接口层:是 TCP/IP 协议的基层,负责数据帧的发送和接收。

三、预备知识

  1、IP地址

  网络上每一个节点都必须有一个独立的 IP 地址,通常使用的 IP 地址是一个 32bit 的数字,被 . 分成 4 组,例如,255.255.255.255 就是一个 IP 地址。有了 IP 地址,用户的计算机就可以发现并连接互联网中的另外一台计算机。

  2、域名

  用 12 位数字组成的 IP 地址很难记忆,在实际应用时,用户一般不需要记住 IP 地址,互联网给每个 IP 地址起了一个别名,习惯上称作域名。例如:百度的IP地址是119.75.218.70,然而实际上我们大多数时候都是通过域名www.baidu.com访问该网址的,因为这样更加符合人们的记忆逻辑。域名与计算机的 IP 地址相对应,并把这种对应关系存储在域名服务系统DNS(Domain Name Service)中,这样用户只需记住域名就可以与指定的计算机进行通信了。常见的域名包括 com、net 和 org 三种顶级域名后缀,除此之外每个国家还有自己国家专属的域名后缀(比如我国的域名后缀为 cn)。目前经常使用的域名诸如百度(www.baidu.com)、Linux 组织(www.lwn.net)等等。在Windows的命令行中我们可以使用命令nslookup或者ping来查看与域名相对应的 IP 地址。

  3、MAC地址

  MAC(Media Access Control)地址,或称为物理地址、硬件地址,用来定义互联网中设备的位置。在 TCP/IP 层次模型中,网络层管理 IP 地址,链路层则负责 MAC 地址。因此每个网络位置会有一个专属于它的 IP 地址,而每个主机会有一个专属于它 MAC 地址。

  4、端口号

  IP 地址是用来发现和查找网络中的地址的,但是不同程序如何互相通信呢,这就需要端口号来识别了。如果把 IP 地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是端口采用 16 比特的端口号标识,一个 IP 地址的端口可以有 65536(即:2^16)个之多!服务器的默认程序一般都是通过人们所熟知的端口号来识别的。例如,对于每个 TCP/IP 实现来说,SMTP(简单邮件传输协议)服务器的 TCP 端口号都是 25,FTP(文件传输协议)服务器的 TCP 端口号都是 21,TFTP(简单文件传输协议)服务器的 UDP 端口号都是 69。任何 TCP/IP 实现所提供的服务都用众所周知的 1-1023 之间的端口号。这些人们所熟知的端口号由 Internet 端口号分配机构(Internet Assigned Numbers Authority, IANA)来管理。

  5、封装和分用

  封装:当应用程序发送数据的时候,数据在协议层次当中从顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,如下图所示,传输层传给网络层的数据单元称作 TCP 报文段(TCP segment) 或 UDP数据报(UDP datagram) 。网络层传给链路层的数据单元称作 IP 数据报(IP datagram)。链路层上的传输单元称作帧(Frame)。

  分用:当主机收到一个数据帧时,数据就从协议层底向上升,通过每一层时,检查并去掉对应层次的报文首部或尾部,与封装过程正好相反。

  6、RFC

  RFC(Request for Comment)文档是所有以太网协议的正式标准,并在其官网上面公布,由 IETF 标准协会制定。大量的 RFC 并不是正式的标准,出版的目的只是为了提供信息。RFC 的篇幅不一,从几页到几百页不等。每一种协议都用一个数字来标识,如 RFC 3720 是 iSCSI 协议的标准,数字越大说是 RFC 的内容越新或者是对应的协议(标准)出现的比较晚。

所有的 RFC 文档都可以从网络上找到,其官网为IETF。在网站上面可以通过分类以及搜索快速找到目标协议的 RFC 文档。目前在 IETF 网站上面的 RFC 文档有数千个,但是我们不需要全部掌握,在工作或学习中如果遇到可以找到对应的解释,理论与实际结合会有更好地效果,单纯阅读 RFC 的效果一般。

时间: 2024-08-12 03:16:47

TCP/IP简介的相关文章

【精】TCP/IP协议简介(一) 之 TCP/IP简介

一.TCP/IP 背景和介绍 上世纪 70 年代,随着计算机技术的发展,计算机使用者意识到:要想发挥计算机更大的作用,就要将世界各地的计算机连接起来.但是简单的连接是远远不够的,因为计算机之间无法沟通.因此设计一种通用的"语言"来交流是必要可少的,这时 TCP/IP 协议就应运而生了.本文地址:http://blog.csdn.net/sunansheng/article/details/52054632 TCP/IP(Transmission Control Protocol/Int

(1)TCP/IP简介

TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准. TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议.IMCP 协议.TCP 协议.以及 http.ftp.pop3 协议等.网络中的计算机都采用这套协议族进行互联. 网络协议栈架构 提到网络协议栈结构,最著名的当属 OSI 七层模型,但是 TCP/IP 协议族的结构则

五十三 网络编程 TCP/IP简介

虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Microsoft都有各自的网络协议,互不兼容,这就好比一群人有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了. 为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Internet Protocol Suite)就是通用协议标准

第三章 TCP/IP简介

DoD模型: 1.进程/应用层 2.主机到主机层 3.因特网层 4.网络接入层 DoD模型与OSI的对应关系 DoD模型   OSI模型 过程/应用层 -----------------> 应用层 表示层 会话层   主机到主机层 -----------------> 传输层   因特网层 -----------------> 网络层   网络接入层 -----------------> 数据链路层 物理层 协议层次关系 过程/应用层 Telnet FTP LPD SNMP TFT

TCP/IP、Http、Socket、XMPP-从入门到深入

TCP/IP.Http.Socket.XMPP-从入门到深入 终极iOS程序猿 2016-12-29 18:27 为了便于大家理解和记忆,我们先对这几个概念进行的介绍,然后分析他们的不同,再进行详细的分析. 一.TCP/IP简介 IP协议是网络层,TCP协议是传输层,HTTP协议是应用层,socket是对TCP/IP协议的代码封装和应用. TPC/IP 主要解决数据如何在网络中传输,HTTP主要解决如何包装数据. TCP/IP协议用来传输数据,应用层协议 使传输的数据有意义,应用层协议有很多,比

TCP/IP 教程

TCP/IP 是因特网的通信协议. 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. 浏览器和服务器都在使用 TCP/IP 因特网浏览器和因特网服务器均使用 TCP/IP 来连接因特网.浏览器使用 TCP/IP 来访问因特网服务器,服务器使用 TCP/IP 向浏览器传回 HTML. 电子邮件也使用 TCP/IP 电子邮件程序使用 TCP/IP 来连接因特网,这样才能收发邮件. 因特网地址也是 TCP/IP 你的因特网地址 117.132.73.13 也是标准的 

Python_TCP/IP简介

本篇将开始介绍Python的网络编程,更多内容请参考:Python学习指南 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接在一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的通信. 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪网的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上了. 由于你的电脑上可能不止浏览器,还有QQ.Skype.Dropbox.网

TCP/IP协议 计算机间的通讯,传输、socket 传输通道

#! /usr/bin/env python3 # -*- coding:utf-8 -*- #TCP/IP简介 #为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Internet Protocol Suite)就是 #通用协议标准.Internet 是由inter 和net 两个单词组合起来的,原意就是连接'网络'的网络,有了Internet,任何私有网络,只要支持这个协议,就可以联入互联网. #虽然互联网协议包含了上百种协议标

TCP/IP协议简介(二) 之 链路层介绍

链路层介绍 一.简介 上一节已经介绍过,网络层协议的数据单元是 IP 数据报 ,而数据链路层的工作就是把网络层交下来的 IP 数据报 封装为 帧(frame)发送到链路上,以及把接收到的帧中的数据取出并上交给网络层. 为达到这一目的,数据链路必须具备一系列相应的功能,主要有: 将数据封装为帧(frame),帧是数据链路层的传送单位: 控制帧的传输,包括处理传输差错,调节发送速率与接收方相匹配: 在两个网络实体之间提供数据链路通路的建立.维持和释放的管理. 数据帧的结构是这样的: 二.控制帧的传输