zoukankan      html  css  js  c++  java
  • 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 的一种.





  • 相关阅读:
    SpringBoot整合Ehcache
    SpringCache整合Redis
    SpringBoot使用mongo搭建RESTful风格
    SpringBoot使用JPA搭建RESTful风格
    SpringBoot操作mongo的两种方法
    Nginx负载均衡
    【Java杂货铺】用Security做权限极简入门
    【Java杂货铺】JVM#虚拟机加载机制
    【Java杂货铺】JVM#Class类结构
    【Java杂货铺】JVM#Java高墙之GC与内存分配策略
  • 原文地址:https://www.cnblogs.com/FBsharl/p/10991258.html
Copyright © 2011-2022 走看看