TCP/IP协议(一)
TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。在介绍TCP/IP协议之前,必须先说说OSI七层网络模型。
OSI网络模型
其实,TCP/IP协议并不是国际标准组织推出的标准协议,而是一个事实标准。国际标准组织推出的是OSI七层网络模型。如下图:
从最顶层的应用层到最底层的物理层,一共有7层,可以通过首字进行简单记忆,也就是“应、表、会、传、网、数、物”。它们的作用分别是:
物理层:电缆、光纤、无线等真实的物理介质,整个虚拟网络的真实载体。其内部进行传输的其实就是高低电平,分别表示1和0,表现形式就是“电压不稳”忽高忽低的电流。通过这种形式,类似101011001001的二进制串就被发送出去。
数据链路层:类似101011001001这样的数串,如果不进行编码,就没有任何意义,神仙都不知道它表示什么,或者你想表示什么,必须有一个统一的规定,统一的“翻译字典”,也就是编码方式来解析其中的意义。这就是数据链路层进行的主要工作。那么由谁来做这个工作呢?网卡!现代网络规定,每台计算机都必须有一块网卡(或虚拟网卡),通过它才能连接网络。每块网卡都必须有一个出厂设置世界唯一的MAC地址,也就是这块网卡的“身份证号”;
网络层:101011001001我们有了,编码方式我们有了,接下来该把数据往哪发呢?世界这么大,如何找到正确的地点?通过MAC地址,确定了每台主机的唯一位置,但我们并不知道如何到达那个位置,也就是不知道去那里的“路”。网络层就是为了解决路的问题。IP协议是网络层事实上的标准协议,它以类似111.111.111.111的方式,将全世界所有的因特网内的主机连在一起,并分别设定IP地址,通过路由的方式,数据包就能知道发往目的地址的正确路径。但这里还有个问题,那就是目标主机内可能同时运行了很多在进行网络通信的程序,那么如何找到正确的对应程序呢?通过端口port!一个IP地址+端口能够唯一确定一个服务程序;
传输层:通过上面三层的努力工作,数据已经送到目标手中,貌似一切ok了?但是目标服务却说“你这数据不合规范不是我想要的”,或者说“哎呀,我还没准备好,你怎么就来了呢?”计算机不是人,没有那么高的智商(至少目前没有),它有它自己规定好的业务逻辑,你必须在正确的时候正确的地点将正确的数据送给它,它才会正确的使用数据(好麻烦)!传输层就是负责在两者之间进行传输逻辑控制的协议。典型的代表就是TCP协议的三次握手连接和四次挥手断开逻辑;
应用层、表示层、会话层:这下是什么都ok了,只剩下数据的利用了。这三层都与应用、具体程序、交互界面等相关,对于用户,其实就是类似QQ、浏览器、迅雷之类的东西。运行是类似FTP/HTTP/SMTP等应用协议,那都是另外一个界面的内容了。
从网络数据包的就够来看,通过几层协议的封装,原始的数据会变成这样:MAC报头(IP报头(TCP报头(原始数据))),数据包变大变臃肿了很多,但还没法省略,少了任何一个都不行。数据包被发到目的地后,又像剥洋葱一样逐层被解包,最后还原成原始数据。
TCP/IP网络模型
网络的发展史是一部”混乱“向”秩序“发展的历史,是一部妥协与斗争的历史,是一部“民间”战胜“政府“的历史,有兴趣的可以看看专门的网络发展史文献。国际标准组织推出的OSI七层网络模型,看起来”高富帅“,实际上分得太细,比较复杂,有点冗余。而TCP/IP网络模型作为”民间“出身,只设置了四层网络,较为简单和实用,因此被各大国际厂商推广,成为行业事实标准,OSI七层网络模型则被用作学校进行网络基础教育的示范和典型。TCP/IP网络模型四层模型从根本上和OSI七层网络模型是一样的,只是合并了几层,具体如下:
在TCP协议中,最经典的是如下的建立连接和断开连接的过程:
TCP/IP三次握手建立连接
TCP/IP四次挥手关闭连接
TCP/IP协议(一)的更多相关文章
- 门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结
门面模式的一个典型应用:Socket 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: 连接使用的 ...
- OSI七层模型详解 TCP/IP协议
总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...
- TCP/IP协议(二)tcp/ip基础知识
今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...
- TCP/IP协议(一)网络基础知识
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
- TCP/IP协议三次握手与四次握手流程解析
原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...
- 【原创】技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)
1.前言 作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UDP协议),但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,再往深一点也就很难 ...
- HTTP协议—— 简单认识TCP/IP协议
大学没读计算机专业,所以很多的专业知识都不知道.既然已经从事了IT这个行业,就势必要去了解下网络底层,虽然实际工作中这些东西用不到.高楼大厦,起于平川.不积跬步,无以至千里,不积小流,无以成江海.我现 ...
- Http TCP/IP 协议的关系
转自:http://www.cnblogs.com/ymy124/archive/2012/03/18/2404958.html 项目要求Web服务是高安全级别,在选择.net remoting,we ...
- TCP/IP协议学习(四) 基于C# Socket的Web服务器---静态资源处理
目录 1. C# Socket通讯 2. HTTP 解析引擎 3. 资源读取和返回 4. 服务器测试和代码下载 Web服务器是Web资源的宿主,它需要处理用户端浏览器的请求,并指定对应的Web资源返回 ...
- TCP/IP协议学习(五) 基于C# Socket的C/S模型
TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...
随机推荐
- mac 命令行 安装 需要管理员 权限
Please try running this command again as root/Administrator. sudo chown -R $USER /usr/local
- 管理windows防火墙
1.导出防火墙规则 netsh advfirewall export "c:\advfirewall.wfw" 2.禁用防火墙 netsh firewall set opmode ...
- LeetCode:Substring with Concatenation of All Words (summarize)
题目链接 You are given a string, S, and a list of words, L, that are all of the same length. Find all st ...
- [C] zlstdint(让VC、TC等编译器自动兼容C99的整数类型)V1.0。支持Turbo C++ 3等DOS下的编译器
作者:zyl910 以前我曾为了让VC++等编译器支持C99的整数类型,便编写了c99int库来智能处理(http://www.cnblogs.com/zyl910/p/c99int_v102.htm ...
- (ETW) Event Tracing for Windows 入门 (含pdf下载)
内容提纲 • ETW 介绍 • ETW 使用 • ETW 监控本机Demo • ETW 监控远程机器的思路 • 底层类库:EventSource 介绍 • 底层类库:TraceEvent 介绍 ETW ...
- MySQL执行计划中key_len详解
(1).索引字段的附加信息:可以分为变长和定长数据类型讨论,当索引字段为定长数据类型,比如char,int,datetime,需要有是否为空的标记,这个标记需要占用1个字节:对于变长数据类型,比如:v ...
- Notes on how to use Webots, especially how to make a robot fly in the air
How to create a new project Wizard - New project directory Scene Tree Scene tree is a representati ...
- IPFS搭建分布式文件系统 - 访问控制
IPFS 一个内容可寻址.对等的超媒体分发协议. IPFS网络中的节点形成分布式文件系统. 为什么要用IPFS? “IPFS and the Blockchain are a perfect matc ...
- 开发常用到的terminal命令
1.删除work_plugin目录下的.svn文件(最后面的;也是命令的一部分) sudo find /Users/maxinliang/DaTang/work_plugin ".svn&q ...
- UITableViewCell分割线左边部分缺少一些的解决方法
-(void)viewDidLayoutSubviews { if ([self.mytableview respondsToSelector:@selector(setSeparato ...