TCP/IP 概述

允许不同厂家的各种型号的计算机使用不同操作系统互相进行通信

真正的开放系统

“全球互联网”或“因特网”的基础

2.分层

网络协议通常分不同层次进行开发,每一层 分别负责不同的通信功能。一个协议族,是一组不同层次上的多个协议的组合。

应用层	    (telnet ftp e-mail等)
运输层 (TCP udp)
网络层 (ip icmp igmp)
链路层 (设备驱动程序及接口卡)

TCP/IP协议族的四个层次

1)链路层/数据链路层/网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。

2)网络层/互联网层,处理分组在网络中大的活动。TCP/IP协议族中,包括IP协议(网际协议),ICMP(互联网控制报文协议),IGMP(internet组管理协议)。

3)运输层主要为两台主机上的应用程序提供端到端的通信。TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)、UDP(用户数据报协议)。

TCP为两台主机提供高可靠性的数据通信。

UDP为应用层提供简单数据报分组发送服务。任何必须的可靠性必须由应用层提供。

4)应用层负责处理特定的应用程序细节。

Telnet远程登录、FTP文件传输协议、SMTP简单邮件传送、SNMP简单网络管理协议





TCP/IP协议族中,网络层IP提供的是一种不可靠的服务。就是说,它知识尽可能快的把分组从源结点送到目的结点,但是并不提供任何可靠性保证。另一方面,TCP在不可靠的IP层上提供了一个可靠的运输层。为了提供这种可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。由此可见,运输层和网络层分别负责不同的功能。

大多数的TCP/IP实现也允许一个多接口主机来担当路由器的功能,但主机为此必须进行特殊配置。这种情况下,既可以称该系统为主机(当它运行某一应用程序时,如FTP或telnet),也可以称之为路由器(当它把分组从一个网络转发到另一个网络时)。

连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器则是在网络层上对网络进行互连。网桥使得多个LAN组合在一起,这样对上层来说就好像一个局域网。

3.TCP/IP的分层

IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。

ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。应用程序也有可能访问他,例如ping和traceroutre.

IGMP是internet组管理协议。用来把一个UDP数据报播到多个主机。

ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

4.互联网的地址

互联网上的每个接口必须由一个唯一的internet地址(也称IP地址)。IP地址长32bit。



通常写成四个十进制数,每个整数对应一个字节(点分十进制).区分各类地址最简单方法是看它的第一个十进制整数。



由于互联网上的每个接口必须由一个唯一的IP地址,因此必须要有一个管理机构为接入互联网的网络分配IP地址。这个管理机构就是互联网信息中心(internet network information centre),称作InterNIC。InterNIC只分配网络号。主机号的分配由系统管理员来负责。

InterNIC由三部分组成:注册服务(rs.internic.net),目录和数据库服务(ds.internic.net),以及信息服务(is.internic.net)。

三类IP地址:
单播地址(目的为单个主机)
广播地址(目的端为给定网络上的所有主机)
组播地址(目的端为同一组内的所有主机)

5.域名系统

人们喜欢使用主机名来访问主机,TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。

6.封装

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些收不信息(有时还要增加尾部信息)。通过以太网传输的数据流称作帧(Frame).

7.分用

当目的主机收到一个以太网数据帧时,数据就开始从协议栈由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing).



为协议ICMP和IGMP定位一直是棘手的事情。图1-4,把它们与IP放在同一层上,是因为事实上它们是IP的附属协议。但是在这里,我们又把他们放在IP层的上面,这是因为ICMP和IGMP包报文都被封装在IP数据报中。

对于ARP和RARP,也遇到类似的难题。在这里把它们放在以太网设备驱动程序的上方,这是因为它们和IP数据报一样,都有各自的以太网数据帧类型。

8.客户-服务器模型

分为两种类型:重复型或并发型。

重复型步骤:

1.等待一个客户请求

2.处理客户请求

3.发送响应给发送给发送请求的客户

4.返回第一步

重复型服务器主要的问题发送在2状态。在这个时候,它不能为其他客户机提供服务。

并发服务器步骤:

1.等待一个客户请求

2.启动一个新服务器处理客户请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。此步骤进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。

3.返回1步

并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。

一般来说,TCP服务器是并发的,而UDP服务器是重复的。

9.端口号

服务器一般都是通过知名端口号来识别的。FTP-21,telnet-23,TFTP-69....

客户端通常对它使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户段欧豪又称临时端口号。

10.标准化过程

11.RFC

所有关于internet的正式标准都以RFC(Request for Comment)文档出版。另,大量的RFC并不是正式的标准,出版的目的只为提供信息。

12.标准的简单服务



//奇数--NCP(网络控制协议,ARPANET的运输层协议)派生--NCP单工

13.互联网

internet意思是用一个共同的协议族把多个网络连接在一起。而Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合。

14.实现

15.应用编程接口

使用TCP/IP协议的应用程序通常采用两种应用编程接口(API):socket和TLI(运输层接口)

16.测试网络

网络层和运输层区别:网络层(IP)提供点到点的服务,运输层(TCP和UDP)提供端到端的服务。

来源:TCP/IP卷一

01-TCP/IP概述的更多相关文章

  1. TCP/IP概述(网络互联与TCP/IP)

    TCP/IP概述(网络互联与TCP/IP) 用IP实现异构网络互联 从用户角度如何实现异构网络互联: 从用户角度看,实现异构网络互联的关键点就是使各种网络类型之间的差异对自己透明.在TCP/IP协议中 ...

  2. TCP/IP --概述

    分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能.一个协议族,比如T C P / I P,是一组不同层次上的多个协议的组合.T C P / I P通常被认为是一个四层协议系统.,如图 ...

  3. 网络知识02:TCP/IP概述

    一  DOD模型 传输控制协议IRI特网协议(TCP/IP)组是由美国国防部(DOD)所创建的,主要用来确保数据的完整性及在毁灭性战争中保持通信 是由一组不同功能的协议组合在一起的协议簇 利用一组协议 ...

  4. 01:tcp/ip基本知识

    1.1 tcp常识 1.网络七层 2.TCP三层握手 ####1.第一次握手 # 建立连接时,客户端发送SYN包到服务器,其中包含客户端的初始序号seq=x,并进入SYN_SENT状态,等待服务器确认 ...

  5. TCP/IP概述

    1) 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. 2) 网络层,有时也称作互联网层, ...

  6. TCP/IP原理浅析

    TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedRese ...

  7. 《TCP/IP详解》

    TCP/IP概述 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本 ...

  8. 浅析TCP/IP

    TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedRese ...

  9. 《TCP/IP详解卷1:协议》第1章 概述-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

随机推荐

  1. 初始if..else 条件语句

    if..else条件语句 如果我们希望有效的响应用户的输入,代码就需要具有判断能力.能够让程序进行判断的结构成为条件,条件判断语句返回的是布尔值真或假,真就执行一条线路,假就执行另外一条线路 if 条 ...

  2. 开发工具idea背景及字体设置

    背景设置: 按两下shift,在搜索框里输入set Background Image,选择set Background Image,如图所示: 设置图片的路径和透明度,如图所示: ★ 注意:idea ...

  3. Singer 学习一 使用Singer进行mysql 2 postgres 数据转换

    Singer 因为版本的问题,推荐的运行方式是使用virtualenv,对于taps&& target 的运行都是 推荐使用此方式,不然包兼容的问题太费事了 备注: 使用docker- ...

  4. 高维数据的高速近期邻算法FLANN

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jinxueliu31/article/details/37768995 高维数据的高速近期邻算法FL ...

  5. KiCad 的 Digikey 元件库

    KiCad 的 Digikey 元件库 KiCad 最初由法国人Jean-Pierre Charras于1992年推出,目前由 CERN(欧洲核子研究组织)接手开发. 而且现在有很多大公司的加入,比如 ...

  6. 《代码大全》的作者Steve McConnell

    Steve McConnell是Construx公司首席软件工程师,在公司里监督软件工程实施.他是软件工程知识体(SWEBOK) 项目构建知识领域的领导.Steve曾为微软公司.波音公司和西雅图地区的 ...

  7. [转]JDK自带工具之问题排查场景示例

    最近看到了大量关于java性能调优.故障排查的文章,自己也写了一篇Java调优经验谈.接着此篇文章,其实一直打算写写一些常用调优工具以及它们的惯常用法的.后来在http://java-performa ...

  8. Day 01 计算机组成和操作系统

    一.编程与编程语言 1.什么是语言?什么是编程语言? 答:语言是一种事物与另一种事物沟通的介质. 编程语言是程序员与计算机沟通的介质. 2.什么是编程? 答:程序员把自己想要让计算机做的事用编程语言表 ...

  9. Linux patch命令详解

    Linux patch命令 Linux patch命令用于修补文件. patch指令让用户利用设置修补文件的方式,修改,更新原始文件.倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行.如果配合 ...

  10. verilog编码规范

    verilog编码规范 1.Register with Rising-Edge Coding Example (Verilog) Flip-Flops and Registers Control Si ...