TCP/IP学习记录,如有错误请指正,谢谢!!!

什么是TCP/IP协议?

TCP/IP协议族分为四层(另一个名字是Internet协议族(Internet Protocol Suite)):链路层、网络层、运输层、和应用层,每一层各有不同的责任。在TCP/IP中,网络层和运输层之间的区别最为关键:网络层(IP)提供点对点的服务,而运输层提供端对端的服务。

分层图显示

  1. 链路层:也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。
  2. 网络层:也称作互联网层,处理分组在网络中的活动。网络层协议包括IP协议(网际协议), ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。
  3. 运输层:主要为两台主机上的应用程序提供端对端的通信。在TCP/IP协议族中,有两个互不相通的传输协议:TCP(传输协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。UDP只是把称作数据报的分组从一台主机发送到另一台主机,并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。
  4. 应用层: 负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:

    4.1 Telnet 远程登录

    4.2 FTP 文件传输协议

    4.3 SMTP 简单邮件传送协议

    4.4 SNMP 简单网络管理协议

TCP/IP协议族中不同层次的协议

  1. IP是网络层上的主要协议,同时被TCP和UDP使用。
  2. ICMP是IP协议的附属协议,主要用来与其它主机或路由器交换错误报文和其它重要信息,但应用程序也有可能访问它,两个主要的诊断工具Ping和Traceroute使用了此协议。
  3. IGMP是Internet组管理协议,用来把一个UDP数据报多播到多个主机。
  4. ARP(地址解析协议)和 RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

互联网的地址分类

* 互联网上的每个接口必须有一个唯一的Internet地址(也称IP地址)。IP地址长32bit。主要分为5类不同的互联网地址格式:

域名系统

在TCP/IP领域中,域名系统(DNS: Domain Name System)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。任何应用程序都可以调用一个标准的库函数来查看给定名字的主机的IP地址,系统还提供一个逆函数--给定主机的IP地址,可看所对应的主机名。大多数使用主机名作为参数的应用程序也可以把IP地址作为参数。

数据进入协议栈封装



UDP数据与TCP数据基本一致,唯一不同的是UDP传给IP的信息单元称作UDP数据报(UDP datagram),而且UDP的首部长为8个字节。由于TCP、UDP、ICMP、IGMP都要向IP传送数据,因此必须在IP首部加入某种标识,IP首部中存入一个长度为8bit的数据,称作协议域。6:TCP,17:UDP,1:ICMP, 2:IGMP。

应用编程接口

通常采用两种应用编程接口(API):socket和TLI(运输层接口: Transport Layer Interface),前者有时称作“Berkeley socket”, 表明它从伯克利版发展而来。后者起初由AT&T开发的,有时称作XTI(X/Open运输接口),以承认X/Open这个自己定义标准的国际计算机生产商所做的工作。XTI实际上是TLI的一个超集。

标准化过程

TCP/IP协议族事实上有四个小组在负责Internet技术

  1. Internet协会(ISOC: Internet Society)是一个推动、支持和促进Internet不断增长和发展的专业组织,它把Internet作为全球研究的基础设施。
  2. Internet体系结构委员会(IAB: Internet Architecture Board)是一个技术监督和协调的机构。它由国际上来自不同专业的15个志愿者组成,其职能是负责Internet标准最后的编辑和技术审核。IAB隶属ISOC.
  3. Internet工程专门小组(IEFE:Internet Engineering Task Force)是一个面向近期标准的组织,它分为9个领域(应用、寻径和寻址、安全等等)。IEFE开发成为Internet标准的规范。为帮助IEFE主席,又成立了Internet工程指导小组(IESG:Internet Engineering Steering Group)。
  4. Internet研究专门小组(IRIF:Internet Engineering Task Force)主要对长远的项目进行研究。IRTF和IETF都隶属于IAB。

TCP/IP初识(一)的更多相关文章

  1. 初识TCP/IP协议

    初识TCP/IP协议 TCP/IP 全称是(Transmission Control Protocol / Internet Protocol),传输控制协议/网际协议.TCP/IP定义了电子设备(比 ...

  2. TCP/IP(一)之初识计算机网络

    前言 在一段时间里,都很想知道一台电脑怎么跟另一台电脑通信的,我发送一个qq给女朋友,怎么准确的发送过去的,又是怎么接受消息的. 接下来一段时间给大家慢慢分享关于计算机网络的相关知识. 一.局域网.广 ...

  3. 计算机网络 0.初识Internet与TCP/IP协议

    互联网,即因特网,Internet.互联网是一个世界范围的计算机网络.连接了世界上无数的计算设备,这些计算设备为PC.基于Linux的工作站,serverservers等等. 这些设备依据其作用不同可 ...

  4. TCP/IP,HTTP,Socket初识

    在大学时候学过网络通信这一块,奈何已经还给老师,苍天饶过谁,该拾起来看看学学的还是要学,先简单了解了下这方面的知识,后续会继续通过看书来充实这方面的知识. 手机能够联网是手机底层实现了TCP/IP协议 ...

  5. TCP/IP网络协议初识

    目录 一.什么是协议? 二.什么是TCP/IP协议? 三.TCP/IP为什么这么多协议? 四.TCP/IP协议为什么分层? 五.TCP/IP协议如何入门? 六.TCP/IP 的分层: 七.各协议层打包 ...

  6. TCP/IP 协议栈初识

    原文:深入浅出 TCP/IP 协议栈 0. 简介 TCP/IP 协议栈是网络通信中一系列网络协议的综合,是核心骨架.它定义了电子设备接入因特网.以及数据在它们之间的传输方式,是一份标准.TCP/IP ...

  7. TCP/IP, WebSocket 和 MQTT

    按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议.在这三者之间, TCP是HTTP和MQTT底层的协议.大家对HTTP很熟悉,这里简要介绍下MQTT.M ...

  8. TCP/IP协议学习笔记

    计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...

  9. TCP/IP基础

    TCP/IP 是用于因特网 (Internet) 的通信协议. 计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述. 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的 ...

随机推荐

  1. CentOS 7运维管理笔记(8)----Apache基于域名的虚拟主机配置

    使用基于域名的虚拟主机配置是比较流行的方式,可以在同一个IP上配置多个域名并且都通过80端口访问. (1) 在网卡 eth0的第五个接口上配置 192.168.1.215 这个地址: (2) 配置/e ...

  2. 消息循环中的TranslateMessage函数和DispatchMessage函数,特别注意WM_TIMER消息

    原文:http://www.cnblogs.com/xingrun/p/3583357.html TranslateMessage函数 函数功能描述:将虚拟键消息转换为字符消息.字符消息被送到调用线程 ...

  3. Python爬虫教程-12-爬虫使用cookie爬取登录后的页面(人人网)(上)

    Python爬虫教程-12-爬虫使用cookie(上) 爬虫关于cookie和session,由于http协议无记忆性,比如说登录淘宝网站的浏览记录,下次打开是不能直接记忆下来的,后来就有了cooki ...

  4. dialog problem overview

    一 Datasets 1. ubuntu chat corpus: http://daviduthus.org/UCC/2. dialogue  datasets (circa 2005) 二 Tas ...

  5. Windows下Python2与Python3两个版本共存的方法详解

    来源:http://www.jb51.net/article/105311.htm 这篇文章主要介绍了Windows下Python2与Python3两个版本共存的方法,文中介绍的很详细,对大家具有一定 ...

  6. Gitlab命令行简单使用

    使用Gitlab拉取远程文件到本地,然后再创建新分支的流程: git clone url   #将远程分支拉取到本地: git status / git branch #查看git的状态和分支情况,g ...

  7. 微信小程序——小程序的能力

    小程序启动 通过app.json里pages字段可以获得页面路径,而写在 pages 字段的第一个页面就是这个小程序的首页(打开小程序看到的第一个页面),就像下面的代码中,小程序启动后的第一个页面就是 ...

  8. java word转pdf 工具类

    package com.elitel.hljhr.comm.web.main.controller; import java.io.File; import java.io.FileOutputStr ...

  9. M-PalindromeP-DP

    Palindrome Partitioning 动态规划+深度优先搜索 https://leetcode.com/discuss/23480/c-solution-with-dp-and-dfs-12 ...

  10. Python学习---深浅拷贝的学习

    浅拷贝copy(): 修改字符串,原来的不变: 更改列表,2个同时修改,以为列表里面还涉及一个指针的索引. 简单讲就是copy()只是简单地copy了第一层,第二层不被copy 深拷贝:  需要单独的 ...