TCP/IP 协议 ----- 协议栈
文章是作者对tcp/ip协议族的一些看法,借鉴TCP/IP详解卷一的内容,进行总结归纳,并阐述自己的一些看法。
TCP/IP协议栈· :
整个协议栈被分为了四层,每一层协议负责不同的功能:链路层:负责处理物理接口的细节,接受发送的都是比特流,链路层主要有三个目的: 1. 为IP模块发送和接收I P数据报;2. 为ARP模块发送ARP请求和接收ARP应答;3.为RARP发送RARP请求和接收RARP应答
网络层:用来处理网络分组在网络中的活动,路由,接受上层tcp/udp报文并封装为IP数据包,网络层吸引也包括ICMP IGMP。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据报格式传输。
传输层:运输层主要为两台主机上的应用程序提供端到端的通信。包含TCP协议和UDP协议。
应用层:即应用层次的协议 例如FTP,DNS , TFTP等。
这张图清晰的标识了各个层次协议。
2.封装与解包
从应用层发送的数据,依次向下被封装为不同的数据包,当通过传输层时,加上了TCP或UDP报头,网络层时添加了IP报头,最后加上以太网报头信息并以比特流发送出去。
等整个比特流到达目的地时,在逐层的解包,到达应用层时,既是发送的内容。
3.包的分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各
层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。
等以太网驱动程序接受数据帧后,要知道这个数据帧是什么协议IP ARP 或RARP,IP层解析出传输层数据包时要判断是哪个协议TCP UDP ICMP 或IGMP? 这就以太网和IP首部去指定这个数据包是哪种协议。
这里可以看到wireshark的抓包结果 在以太网首部有个字段type :IPv4 指定这是一个IP数据包, IP首部也有个协议字段:TCP 说明接受到的是一个TCP包。
TCP/IP 协议 ----- 协议栈的更多相关文章
- TCP/IP协议——TCP/IP协议栈及框架
TCP/IP协议同ISO/OSI模型一样,也可以安排成栈形式.但这个栈不同于ISO/OSI版本,比ISO/OSI栈少,所以又称之为短栈.另外,需要知道的是:TCP/IP协议栈只是许多支持ISO/OSI ...
- 门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结
门面模式的一个典型应用:Socket 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: 连接使用的 ...
- TCP/IP协议学习(五) 基于C# Socket的C/S模型
TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...
- TCP/IP协议学习(四) 协议概述
生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢 ...
- TCP/IP协议基础(转)
转自 http://www.chinaunix.net 作者:Bernardus160 发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- TCP/IP协议知识科普
简介 本文主要介绍了工作中常用的TCP/IP对应协议栈相关基础知识,科普文. 本博客所有文章:http://www.cnblogs.com/xuanku/p/index.html TCP/IP网络协议 ...
- TCP/IP协议原理与应用笔记17:IP编址(重点)
1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...
- OSI 七层模型和 TCP/IP 协议比较
OSI (Open System Interconnection), 开放式系统互联参考模型.从下到上七层模型功能及其代表协议: 物理层(Physical) :规定了激活.维持.关闭通信端点之间的 ...
随机推荐
- Java基础-Eclipse环境搭建(02)
Eclipse工具 IDE(Integrated Development Environment)集成开发环境集成了编写功能,分析功能,编译功能一体化的开发软件. 调试功能等,其中编译在保存时运行(即 ...
- web 开发中的路由是什么意思
路由: 就是一个路径的解析,根据客户端提交的路径,将请求解析到相应的控制器上 从 URL 找到处理这个 URL 的类和函数
- 解决执行sql脚本报错:没有足够的内存继续执行程序。
出现执行sql脚本报错:没有足够的内存继续执行程序.是因为sql脚本过大,大家可能分为多个文件多次执行,这种笨方法可行,不过比较麻烦,大家可以用下面的方式,利用sqlcmd一次就行了: 执行cmd ...
- Java中Double保留后小数位的几种方法
最近做个小实验,其中一部分要求将表单提交的数据转换为double,这个功能其实很简单直接一句Double.parseDouble(request.getParameter("chinese& ...
- HDU 5182
#include <iostream> #include <algorithm> #include <cstring> using namespace std; / ...
- webservice wsdl语法基础
XML-WSDL基础知识 WSDL 1.1. WSDL 简介 1.1.1. 概述 WSDL 指网络服务描述语言 (Web Services Description Language) WSDL ...
- Scala从入门到精通之四-映射和元组
在Scala中映射之键值对的集合,元组是n个对象的聚集,但是对象的类型不一定相同 本节内容要点 Scala中映射的创建,遍历和查询 如何从可变和不可变映射中做出选择 Scala映射和Java映射见的互 ...
- jquery.editable-select 可编辑下拉框之获取select值和input值
使用jquery.editable-select可以实现可编辑下拉框的功能,但需要先导入jquery.js,jquery.editable-select.css,jquery.editable-sel ...
- css伪类的说明以及使用(css事件)
CSS伪类的使用(css事件) 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/7670959.html 之前有开发开发App的时候,有同事问我那个列表的条目按下 ...
- 关于 ElesticSearch 安装
ElesticSearch windows 下安装步骤 1. 配置 JAVA_HOME 环境变量,因为作者是一个java开发人员,这是基本配置,就不多做赘述 2. 安装ElasticSearch 从官 ...