TCP/IP协议详解卷1--第一章概述--读书笔记
作者:vpoet
日期:2015/06/25
注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大家理解


一.引言
百度百科这样说TCP/IP协议:
Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名
网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议
组成。TCP/IP
定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级
结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问
题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一
个地址。
好了我再说说我的理解:
先说说OSI(open System Interconnection)互联开放模型,是某某某组织为网络互联提供的一种标准模型。记
住只是一种模型而已,它大致是这样的,为了表示原创性,图片我尽量画。


好了,在整个理论的模型基础上,美国某某某组织定义和实现了TCP/IP协议,这个协议就是现在我们网络连接时这样
用的协议,记住TCP/IP是个协议族,意思是他有很多协议,好了既然TCP/IP协议是在OSI模型上定义和实现的,那么两
者的关系大概是这样:


明白了,TCP/IP协议将OSI的前三层融合到一层,而传输层和网络层仍然没有改变,物理层为OSI模型中的数
据链路层和物理层这两层的结合。
 



二.TCP/IP各层的意义和各层的意义

首先:应用层是基于底层协议实现的各种协议,是我们用户之间可以接触到的,比如我们远程登录使用的Telnet
协议,比如我们发送邮件的SMTP(简单邮件传输协议),比如我们接受邮件用的pop3协议等。其次:传输层,书上说
传输层是提供端到端的传输,好晦涩,端是啥我不懂,我的理解是传输层通过端口来进行两个主机之间的通信,
因为网络层的IP封装已经提供了主机IP的信息,所以传输层只需要提供某IP的端口信息就可以建议与该主机相
应的端口进行通信。传输层的协议包括TCP和UDP两种协议,TCP是可靠的,什么是可靠的呢,意思就是使用TCP协
议通信会对本次通信的过程进行保证,保证什么,保证信息从源机到目的机,其中用的机制包括建立连接,超时重
传等。UDP提供一种不可靠,不可靠是啥意思呢,就是我只管给你传送,至于你收不到收不到也就跟我没毛关系了。
第三:网络层,主要协议是IP协议,网络层就是网络互联,意思就是什么呢,提供连个主机之间的连接,而这种连
接就是基于IP地址的,理论上说只要是连接到Internet网上的每台主机都有一个唯一的IP地址,这样我们就可以
用这个唯一IP就可以连接到任何一台电脑,但是理想很丰满,现实很骨感,IPv4是不够用的,那意思就是说每台
电脑就不可能划分唯一的IP,但是科学技术是第一生产力,你懂的总有方法解决,比如划分子网,DHCP等用来缓
解IP紧张的压力,但是这不是根本的,根本的就是IPv6的推行和发展才能从根本上解决这个问题,提供足够的IP给
世界上接入互联网的每个终端。最好;物理层也叫网络接口层,这一层的主要目的是提供网络传输的物理细节,这
一层包括了很多协议比如最流行的的以太网协议。
 
 
三.IP地址和端口
IP地址是很重要的,为啥重要,如何没有这玩意儿我们不可能连接到Internet整个庞大的网络,现在用
的IPv4提供的IP数量理论上是不够用的,所以呢有某某某组织也在积极的推动IPv6标准IPv4包括32位,
通常表示成点分10进制,例如192.168.1.1但是在内存中还是2进制表示,类似10000000011000000000000100000001
其结构类似这样:


这就是5类IP地址的结构,
我们可以根据网络号转化成点分10进制:
A类:0.0.0.0-127.255.255.255
B类:128.0.0.0-191.255.255.255
C类:192.0.0.0-223.255.255.255
D类:234.0.0.0-239.255.255.255
E类:240.0.0.0-247.255.255.255
从A-E网络号站的位数依次增多,主机号占的位数依次减少
意思就是啥呢:分配一个A类地址,可以包含2^24个主机 而分配一个C类地址只有2^8(256)个主机
我们还可以直接根据点分10进制的的一个数判断此类IP到底是那类IP地址。当然如果有子网划分就不能只靠判断
哪类地址来决定其主机个数,还要结合子网掩码一起来判断。
 
四.DNS服务
DNS Domain Name System 域名解析系统,这是Internet提供的一项服务。当我们上网的时候需要在浏览器
键入我们想要浏览的网站,通常我们是键入网站的域名,为什么用域名呢,因为域名好用啊,好记啊,不敢想
象如果我们浏览网站总是要通过IP来访问服务器那是多么痛苦。那这个DNS是如何实现的呢,其实DNS解析是通过
分布在世界各地的DNS服务器来实现的,每个DNS服务器都会维护一个默认的域名和IP映射表,当我们通过域名
访问网站的时候,该域名首先进入DNS服务器,然后在域名IP映射表中进行查询,如果查询到对应的IP,然后通
过IP对服务器进行寻址访问,如果没有找到该映射项,那么就会在上一级的DNS服务器中继续查找。
我们可以通过dos下运行 ipconfig /all命令来查询本机的DNS服务器IP



五.关于Tcp/ip通信过程

那么说到这里,大家就想问TCP/IP协议族如何实现主机之间的通信连接呢这里我只有继续发挥的我绘画功
底和想象能力了:


字太丑将就看。
这就是TCP/IP通信过程,其实就是解包和封包的过程,而后面我们具体就要学的就是各个层中有哪些解包封包
的方式,这些解包封包方式的差异就形成了各个层中不同的协议。
好了,就到这里,若有错误,希望大家多多指正。
 

TCP/IP协议详解概述的更多相关文章

  1. TCP/IP协议详解---概述

        工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...

  2. 【转载】TCP /IP协议详解

    首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...

  3. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  4. 003 TCP/IP协议详解(二)

    一.ping ping可以说是ICMP的最著名的应用,是TCP/IP协议的一部分.利用"ping"命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障. 例如:当我们某一 ...

  5. TCP/IP协议详解内容总结

    TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层:   这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为 ...

  6. tcp/ip协议详解

    1. 概念介绍 互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构.它常被通称为 TCP/IP 协议族(英语:TCP/I ...

  7. TCP/IP协议详解内容总结(怒喷一口老血)

    TCP/IP协议(本文源自外部链接) TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络 ...

  8. TCP/IP协议详解笔记——IP协议

    简介 TCP/IP协议族中最核心的协议,提供不可靠.无连接的数据报传输服务. 不可靠:不能保证IP数据报能成功送达. 无连接:并不维护后续数据报的状态信息,每个数据报的处理都是相互独立.数据报可能不会 ...

  9. 003 TCP/IP协议详解(一)

    TCP/IP TCP/IP 意味着 TCP 和 IP 在一起协同工作. TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信. IP 负责计算机之间的通信. TCP 负责将数据分割并装入 IP ...

随机推荐

  1. CF 579A Raising Bacteria

    题意:细菌爱好者在盒子里面培养细菌.最初盒子是空的,每天可以往盒子里面添加任意数目的细菌,而且每天每个细菌会分裂成两个.在某一时刻要想获得某一数量的细菌,要求最初放置的最少的细菌数目. 思路: 求出 ...

  2. Hdu2860-Regroup(种类并查集)

    Problem Description When ALPC42 got to a panzer brigade, He was asked to build software to help them ...

  3. 关于vs的lib文件和dll文件

    一.LIB文件概念 一个lib文件是obj文件的集合.当然,其中还夹杂着其他一些辅助信息,目的是为了让编译器能够准确找到对应的obj文件 二.与DLL的区别 (1)lib是编译时需要的,dll是运行时 ...

  4. linux group

    groups 查看当前登录用户的组内成员 groups gliethttp 查看gliethttp用户所在的组,以及组内成员 whoami 查看当前登录用户名   /etc/group文件包含所有组 ...

  5. Thinkphp 3.0版本上传文件加图片缩略图实例解析

    先看html加个表单,注意这里的action 路径要选 对. <div> <form action="__URL__/add_img" enctype=" ...

  6. Java与面向对象

    一.面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应 ...

  7. 创建UIButton

    UIButtonCreate.h #import <UIKit/UIKit.h> @interface UIButtonCreate : UIButton /** * 创建UIButton ...

  8. 一、cocos2dx概念简介

    cocos2dx概念介绍 1)scene,继承自CCScene 场景,一个游戏运行期间的显示界面,一个应用里面可以有多个场景,但是每次只能有一个是激活状态,也可以理解为一次只能显示一个界面. 例如,你 ...

  9. 期望dp-hdu-4336-Card Collector

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4336 题目大意: 有n种卡片,每包中至多有一种卡片,概率分别为p1,p2,...pn,可能有的没有卡 ...

  10. JavaScript获取某年某月的最后一天

    JavaScript获取某年某月的最后一天 1.实现源代码 <!DOCTYPE html> <!-- To change this license header, choose Li ...