TCP/IP协议学习和理解
TCP:Transmission Control Protocol-传输控制协议
IP:Internet Protocol-网络协议
TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议、IMCP 协议、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 地址相对应,并把这种对应关系存储在域名服务系统 DNS(Domain Name Service)中,这样用户只需记住域名就可以与指定的计算机进行通信了。
常见的域名包括 com、net 和 org 三种顶级域名后缀,除此之外每个国家还有自己国家专属的域名后缀(比如我国的域名后缀为 cn)。目前经常使用的域名诸如百度(www.baidu.com)、Linux 组织(www.lwn.net)等等。
3、MAC 地址
MAC(Media Access Control)地址,或称为物理地址、硬件地址,用来定义互联网中设备的位置。
在 TCP/IP 层次模型中,网络层管理 IP 地址,链路层则负责 MAC 地址。因此每个网络位置会有一个专属于它的 IP 地址,而每个主机会有一个专属于它 MAC 地址。
4、端口号
IP 地址是用来发现和查找网络中的地址的,但是不同程序如何互相通信呢,这就需要端口号来识别了。如果把 IP 地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是端口采用 16 比特的端口号标识,一个 IP 地址的端口可以有 65536(即:216)个之多!
服务器的默认程序一般都是通过人们所熟知的端口号来识别的。例如,对于每个 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 文档。
参考:https://cnbin.github.io/blog/2015/07/03/tcp-slash-ip-xie-yi/
TCP/IP协议学习和理解的更多相关文章
- TCP/IP协议学习(五) 基于C# Socket的C/S模型
TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...
- TCP/IP协议学习之实例ping命令学习笔记
TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...
- TCP/IP协议学习(四) 协议概述
生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢 ...
- TCP/IP协议学习笔记
计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...
- 关于TCP\IP协议的简单理解
一: HTTP是基于TCP协议的,TCP属于传输层.HTTP属于应用层. 另一个属于传输层的是UDP协议. 但HTTP是基于TCP这个协议,不是UDP这个协议. TCP相比于UDP,更安全,稳定.因为 ...
- tcp/ip协议学习笔记一
一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什 ...
- TCP/IP协议学习(四) 基于C# Socket的Web服务器---静态资源处理
目录 1. C# Socket通讯 2. HTTP 解析引擎 3. 资源读取和返回 4. 服务器测试和代码下载 Web服务器是Web资源的宿主,它需要处理用户端浏览器的请求,并指定对应的Web资源返回 ...
- TCP/IP协议学习-1.概述
目录 TCP/IP协议概述 分层 延伸知识 FTP例子 为什么需要网络层和传输层 TCP/IP的分层 封装 分用 总结 本文主要摘抄自书籍<TCP/IP详解卷一:协议>与TCP协议相关内容 ...
- (转)tcp/ip协议的简单理解 -- ip报文和tcp报文的格式
1.概念: TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程.入栈的过程,数据发送方每层不断地封装首部与尾部,添加一些传输的信息,确保能传输到目的地.出栈的过程,数据接收方每层不断地拆除首部 ...
随机推荐
- linkin大话数据结构--Set
Set 集合 Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败. Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals 方法.也 ...
- 解决Android中,禁止ScrollView内的控件改变之后自动滚动
<ScrollView android:id="@+id/scrollView1" android:layout_width="fill_parent" ...
- 06_Ajax初步入门第一天
视频来源:麦子学院 讲师:李毅 ajax:异步JavaScript和XML,局部刷新 原生ajax实例 创建对象 XMLHttpRequest对象 request=new XMLHttpRequest ...
- js点击图片查看大图,并可以拖动,且滚动滑轮放大缩小
方法一:此方法在页面没有滚动条时无法缩放 JQuery function hideMax(){ $(".MAX_div").remove(); $("#Cover_Div ...
- css盒子居中定位问题
在HTML中,div盒子的居中要通过外边距margin和width来控制,首先确定盒子的宽度,然后确定盒子方位并将其平移便可使盒子移到固定位置. <div id="divpic&quo ...
- 【转】shell学习笔记(四)——条件测试
1 test 条件检测 当我要检测系统上面某些文件或者是相关的属性时,利用 test 这个命令来工作真是好用得不得了, 举例来说,我要检查 /home/oracle/zy是否存在时,使用: test ...
- Git分支管理[三]
标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git分支管理命令 git branch #创建分支 git branch -v # ...
- sizeof和strlen的使用
sizeof和strlen的使用 1. sizeof 其值在编译时就计算好了,所以不能用来返回动态分配的内存空姐的大小. 当参数为下面内容是,所表达的含义: 数组——编译时分配的数组空间大小: 指针— ...
- 不干胶打印机 www.bgjdyj.com
不干胶打印机如何保养 不干胶打印机专卖网根据多年的维修经验总结了以下几种保养不干胶打印机的方法: 1.不干胶打印机打印机标签纸不能搁置太长时间,第一容易起静电.第二容易起灰尘2.不干胶打印机的打印头最 ...
- 用ASOS建立自定义的OpenID 服务(一)-----------简介
翻译文章 原文地址 这一系列共包括9个部分,这是第一部分,下面是英文原文地址: Introduction Choosing the right flow(s) Registering the midd ...