01-TCP/IP概述
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概述的更多相关文章
- TCP/IP概述(网络互联与TCP/IP)
TCP/IP概述(网络互联与TCP/IP) 用IP实现异构网络互联 从用户角度如何实现异构网络互联: 从用户角度看,实现异构网络互联的关键点就是使各种网络类型之间的差异对自己透明.在TCP/IP协议中 ...
- TCP/IP --概述
分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能.一个协议族,比如T C P / I P,是一组不同层次上的多个协议的组合.T C P / I P通常被认为是一个四层协议系统.,如图 ...
- 网络知识02:TCP/IP概述
一 DOD模型 传输控制协议IRI特网协议(TCP/IP)组是由美国国防部(DOD)所创建的,主要用来确保数据的完整性及在毁灭性战争中保持通信 是由一组不同功能的协议组合在一起的协议簇 利用一组协议 ...
- 01:tcp/ip基本知识
1.1 tcp常识 1.网络七层 2.TCP三层握手 ####1.第一次握手 # 建立连接时,客户端发送SYN包到服务器,其中包含客户端的初始序号seq=x,并进入SYN_SENT状态,等待服务器确认 ...
- TCP/IP概述
1) 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. 2) 网络层,有时也称作互联网层, ...
- TCP/IP原理浅析
TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedRese ...
- 《TCP/IP详解》
TCP/IP概述 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本 ...
- 浅析TCP/IP
TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedRese ...
- 《TCP/IP详解卷1:协议》第1章 概述-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
随机推荐
- 深入学习Motan系列(一)——入门及知识zookeeper储备
背景以及说明: 最近逮到个RPC框架,打算深入学习,框架千千万,只有懂得内部原理,才能应对复杂的业务,进行自定义化系统. 这个系列的Motan文章也是自己慢慢摸索的轨迹,将这个过程记录下来,一是提升自 ...
- Go Example--关闭通道
package main import ( "fmt" ) func main() { jobs := make(chan int, 5) done := make(chan bo ...
- mongodb集群性能优化
mongodb集群性能优化 在前面两篇文章,我们介绍了如何去搭建mongodb集群,这篇文章我们将介绍如何去优化mongodb的各项配置,以达到最优的效果. 警告 不做任何的优化,集群搭建完成之后,使 ...
- MySQL 5.7--复制延迟监控
========================================== SHOW PROCESSLIST方式 为保证二进制日志在从库的执行时间和顺序的正确性,二进制日志中的每个语句都设置 ...
- buckaroo 去中心化的c++包管理工具
buckaroo 是一款去中心化的c++ 包管理工具,使用上,类似yarn(nodejs),cargo (rust) ,使用buckaroo 我们可以很容易集成一个大规模的项目 支持以下特性 直接从G ...
- How_Require_Extensions_Work
Why Doing require extensions correctly is essential, because: Users should be able to install multip ...
- python中a, b = a, a + b
python中a, b = a, a + b a = 0 b = 1 计算a, b = a, a + b,先计算赋值号右边的部分,即 a = 0, a + b = 0+1=1,然后再赋值给左边 也可以 ...
- 自动化部署--shell脚本--1
传统部署方式1.纯手工scp2.纯手工登录git pull .svn update3.纯手工xftp往上拉4.开发给打一个压缩包,rz上去.解压 传统部署缺点:1.全程运维参与,占用大量时间2.上线速 ...
- ubuntu 14上安装mysql离线包
1.下载mysql在linux下离线安装包文件:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2. ...
- js 字符串转对象
使用eval var test = '{ colkey: "col", colsinfo: "NameList" }' var obj2 = eval(&quo ...