最近在看HTTP的书,看得有点慢,而且断断续续的,很多东西看完就忘了。知识点多且零散,感觉要多看几遍才能消化。

TCP/IP协议族按层次分为4层:

  应用层:

    应用层决定了向用户提供应用服务时通信的活动。

  传输层:

    传输层为应用层提供处于网络连接中的两台计算机之间的数据传输。

  网络层:

    网络层用来处理在网络上流动的数据包。

  链路层:

    链路层用来处理连接网络的硬件部分。

TCP/IP通信传输流:

IP协议:

  Internet Protocol的作用是把各种数据包传送给对方,有两个条件(MAC地址、IP地址)保证了数据能准确传输给对方。

  MAC地址:

    网卡所属的固定地址(物理地址) 。IP间通信依赖MAC地址,通信时一般要进行多次中转才能连接对方,中转过程就会用到MAC地址和ARP协议(ARP协议根据对方IP地址,寻找中转设备的MAC地址,通过中转设备传送,从而连接对方)。

  IP地址:

    指明节点被分配到的地址。IP地址是可以和MAC地址配对的,且IP地址可以变换。

TCP三次握手:

为了准确无误地将数据传送给目标,TCP协议采用了三次握手的机制。发送端先发送一个带SNY(synchronize)标志的数据包给对方,接收端收到后,会回传一个带有SYN/ACK(acknowledgement)标志的数据包表示确认收到,然后发送端再发送一个带ACK标志的数据包,代表握手结束了。注意:若在握手过程中某个阶段中断,TCP协议会再次以相同的顺序发送相同的数据包。

DNS服务:

计算机有IP地址、主机名和域名(例如www.cnblogs.com),用户通常用域名去访问而不是IP地址,因为相对于IP地址的一串数字,域名更符合人类的记忆习惯,但计算机是很难理解名称的,所以DNS服务应运而生。

最后看一张总览图:

以上所有图片来源于上野宣的《图解HTTP》(《今晚我们一起学习HTTP》)。

HTTP相关:TCP/IP、DNS的更多相关文章

  1. TCP/IP DNS

    1.概述   域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,提供主机名字和ip地址转换的选路信息,在应用的角度上,DNS的访问通过地址解析器(resolver)完成,在unix中,解 ...

  2. [TCP/IP]DNS解析

    DNS解析主机的IP地址 host -t A www.baidu.com

  3. TCP/IP 相关总结

    1.   三次握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等 ...

  4. IP、TCP和DNS与HTTP的密切关系

    看了上一篇博文的发表时间,是7月22日,现在是10月22日,已经有三个月没写博客了.这三个月里各种忙各种瞎折腾,发生了很多事情,也思考了很多问题.现在这段时间开始闲下来了,同时该思考的事情也思考清楚了 ...

  5. 结合Wireshark捕获分组深入理解TCP/IP协议栈之DNS协议

    摘要:     本文简单介绍了DNS协议理论知识,给出URL解析步骤,详细讲述了DNS报文各个字段含义,并从Wireshark俘获分组中选取DNS相关报文进行分析. 一.概述 1.1 DNS      ...

  6. TCP/IP 相关知识点与面试题集

    第一部分:TCP/IP相关知识点 对TCP/IP的整体认 链路层知识点 IP层知识点 运输层知识点 应用层知识点 (这些知识点都可以参考:http://www.cnblogs.com/newwy/p/ ...

  7. TCP/IP详解之:IGMP和DNS

    第13章 IGMP:Internet组管理协议 IGMP用于支持主机和路由器进行多播: IGMP是IP层的一部分,IGMP报文通过IP数据报进行传输: IGMP报文长度为固定8 Byte: 报文中,I ...

  8. TCP/IP协议栈源码图解分析系列10:linux内核协议栈中对于socket相关API的实现

    题记:本系列文章的目的是抛开书本从Linux内核源代码的角度详细分析TCP/IP协议栈内核相关技术 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com linu ...

  9. TCP/IP笔记(五)IP协议相关技术

    IP旨在让最终目标主机收到数据包,但是在这一过程中仅仅有IP时无法实现通信的.必须还要又能够解析主机名称和MACdivide功能,以技术包在发送过程中异常情况处理的功能. 这篇主要介绍下DNS.ARP ...

随机推荐

  1. android混淆和反编译

    混淆 Android Studio:  只需在build.gradle(Module:app)中的buildTypes中增加release的编译选项即可,如下: <code class=&quo ...

  2. eclipse搭建ssh后台

    SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程.  第一步:准备工作.    下载好eclipse,Struts2,Spring, ...

  3. 如何设计一个可用的web容器

    之前在另外一个平台(http://www.jointforce.com/jfperiodical/article/1035)发表的一篇文章,现在发布到自己的博客上. 开发一个web容器涉及很多不同方面 ...

  4. Unity Web自适应浏览器

    unity web的自适应浏览器比我想象中要更简单,但是这里也只有更改最简单的东西实现了自适应.发布web时,在playersetting里面设置分辨率为你在Game窗口自定义的分辨率大小,以保证内容 ...

  5. Redis的集群配置

    如果我们redis的压力很大,如果我们的并发高到我们读数据和写数据都有了很大压力. 那么我们可能就需要把redis分开部署,并且配置为一个『主从』的状态. 在服务器上构筑Redis的集群配置: 1.切 ...

  6. 深入浅出web服务器与python应用程序之间的联系

    简单来说,Web服务器是在运行在物理服务器上的一个程序,它永久地等待客户端(主要是浏览器,比如Chrome,Firefox等)发送请求.Web 服务器接受 Http Request,返回 Respon ...

  7. Qt Creator 更改默认构建目录到工程目录下

    Qt Creator 更改默认构建目录到工程目录下 步骤 工具->选项->构建和运行->概要->Default build directory->去掉第一个". ...

  8. ASP.NET Core 使用UrlFirewall对请求进行过滤

    一. 前言 UrlFirewall 是一个开源.轻便的对http请求进行过滤的中间件,可使用在webapi或者网关(比如Ocelot),由我本人编写,并且开源在github:https://githu ...

  9. SQL中内连接和外连接的问题!

    本文系转载,版权归原作者所有. 如表      -------------------------------------------------      table1 | table2 |    ...

  10. oracle 11g杀掉锁的sql

    oracle 11g杀掉锁的sql [引用 2013-3-6 17:19:12]     字号:大 中 小 --查询出出现锁的session_idselect session_id from v$lo ...