Linux网络编程学习——TCP/IP基础(一)

目录

  • 目录
  • 前言
  • TCPIP基础
    • ISOOSI参考模型
    • TCPIP四层模型
    • 基本概念对等通信封装分用端口
  • 总结
  • 链接地址

前言

为了把全世界所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议族(Internet Protocol Suite)就是通用协议标准。Internet是由Internet两个单词组合起来的,愿意就是连接”网络”的网络,有了Internet,任何私有网络只要支持这个协议,就可以联入互联网。——TCP/IP简介

TCP/IP基础

ISO/OSI参考模型

OSI(open system interconnection)开放系统互连模型是由ISO(International Organization for Standardization)国际标准化组织定义的网络分层模型,共七层:从上之下分别是 应用层(提供应用程序间的通信)、表示层(处理数据格式、数据加密等)、会话层(建立、维护和管理会话)、传输层(建立端到端连接(传输单位:segment))、网络层(寻址和路由选择(传输单位:packet))、数据链路层(介质访问、链路管理(传输单位:frame))、物理层(比特流传输)。

物理层(Physical Layer):物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层中数据传输的单位为比特(bit)。属于本层的规范有EIA/TIA RS232EIA/TIA RS-449V.35RJ-45等,实际使用中的设备如网卡等属于本层。

网卡即网络接口板,又称网络适配器或NIC(网络接口控制器),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第一层。它使得用户可以透过电缆或无线相互连接。每个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上每一个计算机都必须拥有一个独一无二的MAC地址。没有任何两块被生产出来的网卡拥有同样的地址。

数据链路层(Data Link Layer):对物理层收到的比特流进行数据成帧。提供可靠的数据传输服务,实现无差错传输。在数据链路层中数据的单位为帧(frame)。属于本层定义的规范为SDLCHDLCPPPSTP、帧中继等,实际使用中的设备switch交换机属于本层。

网络层(Network Layer):网络层负责将各个子网之间的数据进行路由选择,分组和重组。本层中数据传输的单位为数据包(packet)。属于本层定义的规范有IPIPXRIPOSPFICMPIGMP等。实际使用中的设备如路由器属于本层。

传输层(Transport Layer)提供可靠的数据传输服务,它检测路由器丢弃的包,然后产生一个重传请求,能够将乱序收到的数据包重新排序。

会话层(Session Layer):管理主机之间会话过程,包括会话建立、终止和会话过程中的管理。

表示层(Presentation Layer):表示层对网络传输的数据进行变换,使得多个主机之间传送的信息能够互相理解,包括数据的压缩、加密、格式转换等。

应用层(Application Layer):应用层和应用程序界面沟通,以达至展示给用户的目的。在此常见的协议有:HTTPHTTPSFTPTELNETSSHSMTPPOP3.

TCP/IP四层模型

应用层(Application Layer):对应OSI应用层 表示层 会话层 (FTP Telnet HTTP)
传输层(Transport Layer):OSI传输层 TCP UDP
网络层(Internet Layer):OSI网络层 ICMP IP IGMP
链路层(Link Layer):OSI链路层 (ARP RARP)

TCP/IP已经在内核中实现了。
Linux网络编程学习——TCP/IP基础(一)_第1张图片


Linux网络编程学习——TCP/IP基础(一)_第2张图片

基本概念(对等通信、封装、分用、端口)

对等通信:对应的层次之间才能通信。虚电路、逻辑流。
封装(Encapsulation):对数据加入特定层次的识别标志。
分用(Demultiplexing):解封装
端口用于标记一台主机上的特定服务。因为在两台计算机通信时,计算机上一般都跑着多个网络程序。当一个网络数据报到来,到底应该给那个应用程序?如果只有IP地址是无法识别的,这时候主机上的不同网络服务就需要不同的端口,来标明自己。
众所周知端口(Well Known Ports):从0到1023,这些端口有IANA分配和控制它们紧密绑定与一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:21端口为ftp服务端口。
注册端口(Registered Ports):从1024到49191.这些端口不受IANA控制,但有IANA登记并提供使用情况清单。它们松散地绑定与一些服务。也就是说有许多服务绑定与这些端口,这些端口同样用于许多其他目的。
动态或私有端口(Dynamic or Private Ports):从49152到65535。IANA不管这些端口。实际上,机器通常从1024起分配动态端口。

总结

曾经学过《计算机网络》,现在结合编程来学,感觉也比较容易理解了。加油!

链接地址

TCP/IP简介

你可能感兴趣的:(网络编程,网络编程)