惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Forbes - Security
Forbes - Security
IT之家
IT之家
L
LINUX DO - 最新话题
N
News and Events Feed by Topic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
雷峰网
雷峰网
N
News | PayPal Newsroom
The Last Watchdog
The Last Watchdog
V
Visual Studio Blog
月光博客
月光博客
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Webroot Blog
Webroot Blog
TaoSecurity Blog
TaoSecurity Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Schneier on Security
Schneier on Security
P
Privacy International News Feed
G
Google Developers Blog
博客园 - 聂微东
博客园 - 叶小钗
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Simon Willison's Weblog
Simon Willison's Weblog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
H
Hacker News: Front Page
Martin Fowler
Martin Fowler
L
Lohrmann on Cybersecurity
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
T
The Exploit Database - CXSecurity.com
S
Security @ Cisco Blogs
博客园_首页
AWS News Blog
AWS News Blog
P
Proofpoint News Feed
人人都是产品经理
人人都是产品经理
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
T
Threatpost

博客园 - 小笨笨

C# 面试题整理 《ASP.NET Core 6 框架揭秘》第五章读书笔记 - 配置选项(上) 《ASP.NET Core 6 框架揭秘》第四章读书笔记 - 文件系统 Entity Framework Core 笔记 - 入门 《ASP.NET Core 6 框架揭秘》第三章读书笔记 - 依赖注入(下) React 学习笔记之三 - 基于 Redux 状态管理 React 学习笔记之二 - React 详解 《Kafka 权威指南》之二 - 安装 Kafka 《Kafka 权威指南》读书笔记之一 - 初识Kafka React 学习笔记之一 - ES6 基础 微服务实战读书笔记-第一章 缠论 jQuery 实战读书笔记之第六章:事件本质 jQuery 实战读书笔记之第五章:使用 jQuery 操作页面 jQuery 实战读书笔记之第四章:使用特性、属性和数据 jQuery 实战读书笔记之第三章:操作 jQuery 集合 jQuery 实战读书笔记之第二章:选择元素 TCP/IP详解读书笔记:ARP-地址解析协议 TCP/IP详解读书笔记:链路层
TCP/IP详解读书笔记:概述
小笨笨 · 2014-12-24 · via 博客园 - 小笨笨

分层

分层是一种很通用的架构模式。通过分层,可以把一个系统分解成多个层,每个层专注于各自的功能,并提供接口给上面的层调用。上面的层不需要了解调用层的详细实现,只依赖于其接口,这就给维护带来了很大的好处,比如可以很方便的替换某一层。

网络协议也是分层实现的。比如TCP/IP协议,是一组不同层次上的多个协议的组合。一般分为四层。

1)链路层:也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和对应的网络接口卡。有ARP和RARP协议。

2)网络层:处理分组在网络中的活动,包括IP协议,ICMP协议及IGMP协议。

3) 运输层:主要为两台主机上的应用程序提供端到端的通信。主要有TCP和UDP两个传输协议。TCP为两台主机提供高可靠性的数据通信。UDP只是发送数据包,不保证是否到达另一端,因此可靠性由应用层来提供。

4)应用层:负责处理特定的应用程序细节。

一般来说,应用层运行在用户进程,其余三层运行于内核中,但这不是必须的。

网络接口层处理通信媒介的细节,应用层处理某个特定的应用程序,运输层和网络层区别不太明显,那为什么要分两层?简单的说,从分层的角度看,还是因为两层的功能不一样。网络层提供的是一种不可靠的服务,它只是尽可能快地把分组从源发送到目的地。TCP在不可靠的IP层上提供了可靠的运输层,它提供了超时重传,发送和接收端到端的确认分组机制等。那UDP呢?

互联网的地址

每个接口必须有一个唯一的地址。下图是五类互联网地址。

网络地址有三类,单播地址(目的为单个主机),广播地址(目的为给定网络上的所有主机)以及多播地址(同一组内的所有主机)。

域名系统

在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。

封装

当应用程序使用TCP发送数据时,数据被送入协议栈,然后逐层通过各层直到被当作比特流送入网络,每一层对收到的数据都要增加首部信息。详细如下图:

以太网数据帧的物理特性是其长度必须在46-1500之间。

分用

一张图足矣。

唯一要指出的是ICMP和IGMP虽然在同一层,因为它们是IP的附属协议,但它们的报文是封装在IP数据报中,因此这里放在IP的上方。

ARP和RARP同理。

客户-服务器模型

这里将服务分为了两种类型:重复型和并发型。重复型有排他性,同时只能为一个客户端访问。并发型在客户请求来时生成一个进程或线程进行服务。

一般来说,TCP服务器是并发的,UDP服务器是重复的,有例外但目前还不清楚。

端口号

客户端不在乎端口号,因为这是临时端口号,只要在本机上唯一即可,大多数TCP/IP采用1024-5000之间的端口号。

有一些众所周知的端口号,比如1-1023之间的端口号,提供我们很熟悉的服务。比如,21端口号提供的是FTP服务。

应用编程接口

使用TCP/IP协议的应用程序通常采用两种应用编程接口:socket和TLI(运输层接口,有时称作XTI)。