热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TCP/IP详解卷1第一章概述

第一章概述1.2分层网络编程通常分不同层次进行开发,每一层负责不同的通信功能。一个协议族比如TCPIP,通常是一组不同层次上多个协议的组合。一般可以认为
第一章概述

1.2 分层

网络编程通常分不同层次进行开发,每一层负责不同的通信功能。

一个协议族比如TCP/IP,通常是一组不同层次上多个协议的组合。一般可以认为是是四层协议系统:

 

链路层:有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。协议有以太网协议。

网络层:处理分组在网络中的活动,例如分组的选路。一般协议有ip协议,ICMP协议,IGMP协议、

运输层:有时也叫传输层,为两台主机系统提供端到端的通信。协议有tcp,udp。

应用层:负责特定的应用程序细节。协议有telnet,ftp,ssh,自定义协议等。

 

假设在同一局域网(LAN)内两个主机通过ftp传输,那么主要过程如下所示:

 

 

应用程序通常是在第一层,后三层都是由操作系统做了(在内核中执行)。

应用程序关心具体的细节,不必关心数据在网络中的传输。下面三层也对应用层一无所知。

 

1.3 TCP/IP的分层

在TCP/IP协议族中有很多中协议,如下图示:

 

 

虽然T C P使用不可靠的 I P服务,但它却提供一种可靠的运输层服务。

但是与 T C P不同的是, U D P是不可靠的,它不能保证数据报能安全无误地到达最终目的。

I P是网络层上的主要协议,同时被 T C P和U D P使用。 T C P和U D P的每组数据都通过端系统和每个中间路由器中的I P层在互联网中进行传输。

I C M P是I P协议的附属协议。 I P层用它来与其他主机或路由器交换错误报文和其他重要信息。

I G M P是I n t e r n e t组管理协议。它用来把一个 U D P数据报多播到多个主机。

A R P(地址解析协议)和 R A R P(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换 I P层和网络接口层使用的地址。

 

1.4 互联网的地址

互联网上每个接口设备必须有唯一的internet地址,称为ip地址。32bit。

可以分为5类:

 

32位通常可以写成4个十进制的数,称为点分十进制。

 

互联网洛信息中心(internet network information centre):管理机构,为接入互联网的网络分配ip地址的。

简称InterNIC,InterNIC只分配网络号,主机号的分配由系统管理员来负责。

 

1.5 域名系统

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

任何应用程序可以调用一个标准库函数来查看给定名字的主机的IP地址,也有一个函数可以通过IP地址查到对应的主机名。

 

1.6 封装

用tcp传送数据时,数据被送入协议栈,然后逐个通过每一层知道被当做一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。如下图:

 

TCP传给IP的数据单元称为TCP报文段(简称TCP段)

UDP传给IP的数据单元称为UDP数据报(UDP datagram)

IP传给链路层的数据单元称为IP数据报(IP datagram)

通过以太网传输的比特流叫做帧(frame)

 

1.7 分用(Demultiplexing)

目的主机收到以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。

每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程叫分用,也就是封装的逆过程。

 

ICMP和IGMP的定位其实有尴尬,之前说是和IP同一层的,因为事实上确实是IP的附属协议。

但是在这里,又把它们放在了IP层的上方,这是因为ICMP和IGMP报文都被封装在IP数据报中。

 

 

1.8 客户-服务器模型

大部分网络应用程序在编写时都假设一端的client,一段的server。

可以将服务器分为两种类型:

1)  重复型服务器:主要的问题发生在A2步骤,这时不能为其他客户机提供服务。

主要交互步骤如下:

A1:等待一个client请求的到来

A2:处理客户请求

A3:发送响应给发送请求的客户

A4:返回A1 步。

2)  并发型服务器:

主要交互步骤如下:

B1:等待一个client请求的到来

B2:启动一个新的服务器来处理这个客户的请求。可能会有 一个新的进程、服务、线程之类的用来跟客户机通信,处理结束后终止这个服务器。

B3:返回C1

优点:每个客户机都有对应的服务器,如果操作系统允许多任务,那么就可以同时为多个客户服务。

 一般来说,TCP服务器是并发的,UDP服务器是重复的。但是也有例外哦

 

1.9 端口号

采用16bit的端口号来识别应用程序。

服务器一般都是通过知名端口号来识别的,对于每个TCP/IP来说,ftp服务器的端口号都是21,telnet是23,

TFTP(00000000简单文件传送协议)服务器的UDP端口号都是69

知名端口号:1到1023.这些知名端口号都internet号分配机构管理(IANA)

客户端通常对它使用的端口号不关心,只需保证该端口号在本机上是唯一的就可以了。客户端端口号又称作临时端口号。

大部分TCP/IP实现给临时端口分配1024-5000之间的端口号。大于5000的端口号是为其他服务器预留的。

 

1.10 标准化过程。

有四个小组负责Internet技术:

1) Internet协会(I S O C, Internet Society)是一个推动、支持和促进 I n t e r n e t不断增长和发展的专业组织,它把 I n t e r n e t作为全球研究通信的基础设施。

2) Internet体系结构委员会(I A B, Internet Architecture Board)是一个技术监督和协调的机构。它由国际上来自不同专业的 1 5个志愿者组成,其职能是负责 I n t e r n e t标准的最后编辑和技术审核。 I A B隶属于I S O C。

3) Internet工程专门小组(I E T F, Internet Engineering Task Force)是一个面向近期标准的组织,它分为9个领域(应用、寻径和寻址、安全等等)。 I E T F开发成为I n t e r n e t标准的规范。为帮助IETF主席,又成立了Internet工程指导小组(IESG, Internet Engineering Steering Group)。

4) Internet研究专门小组(IR I F, Internet Research Task Force)主要对长远的项目进行研究。

 

1.11 RFC

所有关于Interner的正式标准都以RFC(request for comment)文档出版。所有的RFC都可以通过电子邮件或用FTP从Internet上免费获取。

 

1.12 标准的简单服务

有一些标准的简单服务几乎每种实现都要提供。

 

1.13 互联网

internet的意思是用一个共同的协议族把多个网络连接在一起。而Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合。

 

1.14 实现

 

1.15 应用编程接口

使用TCP/IP协议的应用程序通常采用两种应用编程接口(API):socket和TLI(运输层接口,transport layer interface)

socket:从伯克利版发展而来

TLI:起初由AT&T开发的。

 

转:https://www.cnblogs.com/xcywt/p/8379637.html



推荐阅读
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 深入理解路由器控制平面与转发平面及路由表
    本文详细介绍了路由器的控制平面和转发平面,并解释了路由表及其核心表项的重要性,帮助读者全面掌握路由器的工作原理。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文详细解释了华为ENSP模拟器中常用的命令,涵盖用户模式、系统模式、接口模式和地址池视图模式下的操作。这些命令对于进行计算机网络实验至关重要,帮助用户更好地理解和配置路由器及PC机的通信。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • MySQL DateTime 类型数据处理及.0 尾数去除方法
    本文介绍如何在 MySQL 中处理 DateTime 类型的数据,并解决获取数据时出现的.0尾数问题。同时,探讨了不同场景下的解决方案,确保数据格式的一致性和准确性。 ... [详细]
  • 本文详细介绍了如何在不同操作系统和设备上设置和配置网络连接的IP地址,涵盖静态和动态IP地址的设置方法。同时,提供了关于路由器和机顶盒等设备的IP配置指南。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
author-avatar
mobiledu2502855653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有