TCP/IP Illustrated 第一章 Introduction

Introduction

在这一章节,作者大致地进行了 TCP/IP 的 whirlwind tour, 讲解了数据传输的四层, link layer, network layer, transport layer 和 application layer, 并且对其中的每一层进行了区分.
同时,作者也讲述了这四层之间执行协同工作的方式,即 encapsulation 和 demultiplexing
internet 是众多 network 的集合,它们通过 IP address 和 port number 进行沟通.

Layering

TCP/IP 是由四个层次构成的,这四个层次分别为:

  1. Application
  2. Transport
  3. Network
  4. Link

link layer, 又叫 data-link layer, 或者 network interface layer, 用于处理各种硬件方面的问题.
network layer, 又叫 internet layer, 用于处理网络中的 packets, 它包含了三个方面的协议:IP(Internet Protocol), ICMP(Internet Group Management Protocol) ,IGMP(Internet Group Management Protocol)
transport layer, 其功能是用于提供两机交流的通道,包括了 TCP(Transmission Control Protocol) 和 UDP(User Datagram Protocol) 两种.
application layer, 用于实际的功能,如 FTP, SMTP, HTTP 等等.

区别

application layer 用于处理应用的细节,而对数据的传输一无所知;
其下的三个 layer 对应用的细节一无所知,但是负责数据的传输.

IP layer 是一种 hop-by-hop protocol,而其他的 protocol, 都是 end-to-end protocol, 其中的 IP router 可以将 IP 连接 link 层的不同协议.

TCP 具有 timeout 和 retransmission 的机制,但是 IP 没有, 因此 TCP 层更加安全.

目的

建成的目的是为了 hide all the details of the physical layout of the internet

Internet Address

定义: 每一个 interface 都必须有一个 internet address, 其又称 IP address.
记法: 是 32-bit 的,分为 A,B,C,D,E 五个等级,每个等级的编号包含前缀, netid, hostid.

the Domain Name System

定义: DNS, 用于提供 IP address 和 hostname 之间的 mapping .

Encapsulation & Demultiplexing

Encapsulation

定义;
当用户通过 application 发送信息的时候,也就是数据由 application layer 向下游走的时候, 每一层接受到之后,会在其前或者其后添加一段信息,然后再发送给下一层,这一概念叫做 encapsulation.
概念:
其中 TCP 向 IP 发送的为 TCP segment, IP 向 link layer 发送的为 IP datagram.最后在 Ethernet 层形成 Ethernet frame.
?

Demultiplexing

数据的接收端接受信息的时候,信息中所带的 header 被逐层解释并去掉,然后向上一层再发送去掉 header 的信息,这一过程叫做 demultiplexing.

在 demultiplexing 的过程中, 需要用到 source IP address & port number 和 destination port address & port number.

Client-Server Model

所有的 networking application 都假设一端是 client,另一端是 server, 因此存在两种 server 的类型,分别为 iterative server 和 concurrent server.
iterative server 的处理方式为:

  1. Wait for a client request to arrive
  2. Process the client request
  3. Send the response back to the client.
  4. Go back to STEP 1.

concurrent server 的处理方式为:

  1. Wait for a client request to arrive
  2. Start a new server( to handle this client‘s request, and terminates when complete)
  3. Go back to STEP 1

Port number

ephemeral port: a client‘s port, 仅仅存在于 client 登陆的时候, 因此是 short lived 的
在 UNIX 系统中, 这些 port number 位于 /etc/services 中,可以利用
grep telnet /etc/services 来查找这些端口位置.
?

Internet & internet

区别

Internet 指的是能够通过 TCP/IP 协议的主机,能够在全球范围内进行交流.
internet 指的是通过使用一个共同的协议族进行网络的连接.是 a collection of networks

联系

Internet 是 internet 的一种.

原文地址:https://www.cnblogs.com/FBsharl/p/10991258.html

时间: 2024-10-10 07:40:54

TCP/IP Illustrated 第一章 Introduction的相关文章

tcp/ip协议第一章读后总结

网络层和传输层之间的区别是最为关键的:网络层(ip)提供点到点的服务,而运输层(tcp和udp)提供端到端的服务 在一个互联网上,每个接口都用ip地址来标识,尽管用户习惯使用主机名而不是ip地址.域名系统为主机名和ip地址之间提供动态的映射.端口号用来标识互相通信的应用程序.服务器使用知名端口号,而客户使用临时设定的端口号.

图解 TCP/IP 第六章 TCP与UDP 笔记6.1 传输层的作用

?图解?TCP/IP? 第六章?TCP与UDP? ?笔记6.1 传输层的作用 ? 传输层必须指出这个具体的程序,为了实现这一功能,使用端口号这样一种识别码.根据端口号,就可以识别在传输层上一层的应用程序所有进行处理的具体程序. ? 6.1.1 传输层定义 6.1.2 通信处理 ? 6.1.3 两种传输层协议 TCP和UDP TCP 是面向连接的.可靠的流协议.流就是指不间断的数据结构,你可以把它想象成排水管道中的水流. UDP 是不具有可靠性的数据包协议 .细微的处理会交给上层的应用去完成.在U

图解TCP/IP→第2章基础知识

####TCP.IP背景**关键词:ARPANET,UNIX,分组交换技术, *ARPANET(阿帕网),也是全球互联网的鼻祖.阿帕网的成功也充分证明了基于分组交换技术的通信方法的可行性. *20世纪70年代前半叶,ARPANET中的一个研究机构研发出了TCP/IP. *大事件表↓→1969年        ARPANET诞生.开发分组交换技术→1972年        ARPANET取得初步成功.扩展到50个节点.→1975年        TCP/IP诞生.→1982年        TCP

TCP/IP illustrated 第九、十章 IP Routing & Dynamic Routing Protocols

IP routing Summary 定义: IP routing 指的是 IP 如何 make routing decisions,即将 IP datagram 发到哪里去.基础:IP routing 的基础是 IP routing table, 每次发送 IP datagram 的时候,都会参照 routing table,选择合适的 route, 然后发送.IP routing table 可以创建和修改,其方法如下: 通过 ICMP redirect message 改动 通过 user

PRML笔记 第一章 Introduction

模式识别关注在数据中自动发现信息并采取行动,例如数据分类. 例子:手写识别.使用规则等方法将导致复杂的规则和例外情况.使用机器学习方法,利用训练集自动调整参数.目标模式是已知的数字0-9,成为目标向量t.模式识别的推广能力是一个中心目标! 预处理:又称为特征提取.输入数据大多数需要预处理,是模式识别更加容易!同时,预处理可以提高效率,但应该注意信息丢失,准确度下降. 分类: 有目标向量:监督学习(离散与连续:分类与回归). 无目标向量:无监督学习:聚类,密度估计,数据可视化等 reinfocem

tcp/ip 学习笔记 章二 链路层

一.数据链路层 当需要在一条线路上传递数据时,除了必须使用一条物理设备时,还需要一些必要的通信协议来控制数据的传输,若把实现这些协议的硬件和软件的加到链路上,就叫做数据链路:最常用的是-----网络适配器.一般适配器都包含了数据链路层和物理层这两层的功能. 物理层的包含多种与物理介质相关的协议和标准 物理层协议分类: 电磁与光学协议(电流.光调制.编码) 机械协议(链接介质机械标准,大小.形状.化学成分) 功能性的协议 程序性协议(比如二进制数1,表示的电压) eg:EIA/TIA-232 V.

Multicast over TCP/IP HOWTO

http://www.tldp.org/HOWTO/Multicast-HOWTO.html 1. Introduction 1.1 What is Multicast Multicast is... a need. Well, at least in some scenarios. If you have information (a lot of information, usually) that should be transmitted to various (but usually

浅谈TCP/IP网络编程中socket的行为

我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: . TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) . Socket I/O系统调用(重点如read/write),这是TCP/IP协议在应用层表现出来的行为. . 编写Performant, Scalable的服务器程序.包括多线程.IO Multiplexing.非阻塞.异步等各种技术. 关于TCP/IP协议,建议参考Richard Stevens的<TCP/IP Illust

TCP/IP之四书五经[转自2003.12程序员]

TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要.从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE.Java..NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度.但是,如果想要在这个领域达到融会贯通的地步,不打下坚实的基础是不可想象的.正如Richard Stevens在TCP/IP Illustrated中所说,在网络编程领域,开发者所遇到的实际问题中,大约