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 ...
随机推荐
- C#中扩展StringBuilder支持链式方法
本篇体验扩展StringBuilder使之支持链式方法. 这里有一个根据键值集合生成select元素的方法. private static string BuilderSelectBox(IDicti ...
- 使用ThreadPool代替Thread
线程的空间开销 线程内核对象.包含上下文信息.32位系统占用700字节 线程环境块.包括线程的异常处理链.32位系统占用4KB 用户模式栈.保存方法的参数.局部变量和返回值 内核模式栈.调用操作系统的 ...
- Android屏幕适配的一些常识
屏幕适配的注意事项 1. AndroidManifest.xml设置 在中Menifest中添加子元素 android:anyDensity="true"时,应用程序安装在不同密度 ...
- Gradle 构建 android 应用常见问题解决指南
前言 android gradle 插件已经发展到0.5.7,同时gradle 本身也到了1.8,相比两个月前,android gradle 更快,更完善,也更好用了,为了让各位androider 早 ...
- 【LeetCode】273. Integer to English Words
Integer to English Words Convert a non-negative integer to its english words representation. Given i ...
- Three Sources of a Solid Object-Oriented Design
pingback :http://java.sys-con.com/node/84633?page=0,1 Object-oriented design is like an alloy consis ...
- Django 源码小剖: Django ORM 查询管理器
ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...
- 博为iHospital-HIS医院信息系统产品系列
博为软件iHospital-HIS产品系列式面向大中型医院应用的完整医院流程信息化产品,覆盖了医院主要的业务流程,管理职能,和病人在医院诊疗的各个环节.将医院流程的优化与软件系统完美结合,为建立数字化 ...
- PowerShell定时记录操作系统行为
作为系统管理员,有些时候是需要记录系统中的其他用户的一些操作行为的,例如:当系统管理员怀疑系统存在漏洞,且已经有被植入后门或者创建隐藏账户时,就需要对曾经登陆的用户进行监控,保存其打开或者操作过的文件 ...
- Windows Store 开发总结——文件操作
1.读取Isolated Storage 每个Metro程序都有三个文件夹:Local,Roaming,Temp.每个文件夹的访问方法都是相同的. Local用于将数据存储在本地,这是程序特定的文件夹 ...