计算机网络基础知识复习汇总:计算机网络基础知识复习

HTTP协议的解析:剖析 HTTP 协议

一个系列的解析文章:

1、计算机的网络体系          

 
         

  • 网络接口层:对应OSI物理层和数据链路层并实现与他们相同的功能。其中包括LAN和WAN的技术细节,也称为主机到网络层

    • LAN:IEEE802.2/3 IEEE802.5 FDDI
    • WAN:HDLC SLIP PPP FrameRelay ATM
  • 互联网络层运送数据包,将数据从任何相连的网络送到目的地,而不在乎走的是那个路径或网络。管理这一层的特定协议称为互联网络协议(IP)。最佳路径选定和数据包交换都发生在着一层。实现的是不同网络连接组成更大网络的问题。
  • 运输层主要负责处理有关服务质量等事项,如可靠度、流量控制和错误校正。该层可以提供不同服务质量、不同可靠性保证的传输服务,并且协议发送端和目标端的传输速度差异。这一层也称为主机到主机层。主要解决如何区分不同应用程序的问题,端口号。
  • 应用层:包括会话层和表示层的功能,用来建立应用层来处理高层协议、有关表达、编码和会话控制。TCP/IP将所有应用程序有关的内容都归为这一层,并保证为下层适当地将数据数据封装成数据包。大部分TCP/IP实现都会提供以下通用程序:
    • Telnet远程登陆,端口号21:通过链接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机。但是不够安全,现在基本上都采用SSH来进行远程登录
    • FTP文件传输协议,端口号23:用于上传下载
    • SMTP简单邮件传送协议,端口号25
    • SNMP简单网络管理协议
    • DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
    • HTTP超文本传输协议,端口号80:通过http实现网络上的超文本的传输

2、TCP/IP的特点

  • TCP/IP不是一个简单的协议,而是一组小的、专业化协议,包括TCP、IP、UDP、ARP、ICMP以及其他的一些被称为子协议的协议。
  • TCP/IP是一种因特网标准,最大的优势是其具有很好的可路由性。
  • TCP/IP可以跨越多个网段的协议,由于其携带了网络层的信息和编址信息,这些信息可由路由器理解。
  • IP数据包的最长不超过65535个字节,最小不小于20个字节
  • IP协议是一种不可靠、无连接的协议,意味着它不保证数据的可靠传输。TCP/IP协议群中更高层协议可使用IP信息确保数据包按正确的地址进行传输。注意到IP数据报并不包含一个校验和部件,IP数据报报头校验和仅仅验证IP报头中的路由信息的完整性。如果当数据包被接收时伴随信息的校验和值不正确,则数据包将被认为已经破坏并被抛弃,同时,一个新的数据包将被发送。
  • IP层是点到点的连接,即一台主机与另一台主机之间的连接
  • 传输层则是端到端的连接,即一台主机上的一个应用程序到另一台主机上的对应应用程序之间的连接

3、协议的三要素

  • 语法:传输数据的格式(IP数据报的报头20字节)
  • 语义:每个字段的值表示什么意思
  • 时序:

4、传输层协议

  • TCP:Transmission Control Protocol,传输控制协议,提供的是可靠的、面向连接的协议,传输效率低

    • Telnet远程登陆,端口号21:通过链接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机。但是不够安全,现在基本上都采用SSH来进行远程登录
    • FTP文件传输协议,端口号23:用于上传下载
    • SMTP简单邮件传送协议,端口号25
    • DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
    • HTTP超文本传输协议,端口号80:通过http实现网络上的超文本的传输
  • UDP:User Datagram Protocol,用户数据报协议,提供的是不可靠的、无连接的服务,传输效率高
    • TFTP简单文件传输协议,端口号69
    • DNS域名服务,端口号53:当用户输入网站的名称后,有DNS负责将它解析成IP地址,这个过程中用到端口号53
    • NTP网络时间协议,端口号123
    • RPC远程过程调用,端口号111
    • QQ 端口号8000

5、TCP建立连接三次握手

  • SYN表示请求建立连接标志位,ACK是确认标志位
  • ACK的值应该是请求数据包中的seq+1
  • 应用:TCP半连接攻击

6、TCP断开连接四次握手

  • FIN表示断开连接的标志位,为1表
  • 示请求断开连接

7、流量控制和差错控制

  • TCP的流量控制通过滑动窗口来控制,UDP没有流量控制
  • TCP的差错校验通过序号、ACK确认以及各种标志位的识别来进行差错校验,UDP只有校验和来提供差错校验,需要上层协议来提供差错校验,eg:TFTP

8、ARP协议:地址解析协议

  ARP协议是一个互联网络层协议,它获取主机或节点的MAC地址(物理地址)并创建一个本地数据库以将MAC地址映射到主机IP(逻辑)地址上。ARP协议与IP协议紧密协作,因为IP在指导发送数据到目标主机之前必须具有目标主机的物理地址,为使ARP更加有效,计算机在一个缓冲区保存已经知道的IP-MAC地址映射表,这样就无需广播冗余请求。arp -a命令进行查询

9、ICMP协议:网络控制数据包协议

  ICMP协议位于TCP/IP模型互联网络层的IP协议和TCP协议之间ICMP消息通过IP数据报传送,它不提供错误控制服务,被用来发送错误和控制信息。ICMP常用语诊断实用程序中,如ping命令和Tracert命令。可以用ICMP协议来检测双向通路的

  ICMP协议定义了很多信息类型:

    • 目的地不可达
    • TTL超时(大多128跳)
    • 信息请求
    • 信息应答
    • 地址请求
    • 地址应答

  

TCP/IP协议学习笔记的更多相关文章

  1. tcp/ip协议学习笔记一

    一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什 ...

  2. TCP/IP协议学习之实例ping命令学习笔记

    TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...

  3. TCP/IP协议学习(五) 基于C# Socket的C/S模型

    TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...

  4. TCP/IP协议精华笔记

    1.简介 TCP/IP协议并非单指TCP协议.IP协议,它是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议.ICMP(Internet Control Mes ...

  5. TCP/IP协议学习-1.概述

    目录 TCP/IP协议概述 分层 延伸知识 FTP例子 为什么需要网络层和传输层 TCP/IP的分层 封装 分用 总结 本文主要摘抄自书籍<TCP/IP详解卷一:协议>与TCP协议相关内容 ...

  6. TCP/IP协议学习(四) 协议概述

    生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢 ...

  7. TCP/IP协议学习(四) 基于C# Socket的Web服务器---静态资源处理

    目录 1. C# Socket通讯 2. HTTP 解析引擎 3. 资源读取和返回 4. 服务器测试和代码下载 Web服务器是Web资源的宿主,它需要处理用户端浏览器的请求,并指定对应的Web资源返回 ...

  8. TCP/IP协议学习和理解

    TCP:Transmission Control Protocol-传输控制协议 IP:Internet Protocol-网络协议 TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP ...

  9. TCP/IP协议学习

    计算机网路学得不好,首先先放个OSI七层网络模型吧 在协议的控制下,上层对下层进行调用,下层对上层进行服务, 上下层间用交换原语交换信息.这样可以提高传输速率,并且保证数据安全,所以说其实每一层都有存 ...

随机推荐

  1. 作业七:团队项目——Alpha版本冲刺阶段 001

    今天进展:准备开发环境,安装软件. 今天安排:因为软件过于庞大,所以我们第一天都在按软件,原本计划第一天要设计框架,但因为软件问题.所以我们决定留到第二天.

  2. 一些常用的vim设置

    以下内容皆来源于网络,感谢原作者.如果引用出处错误,请告知以便修改. 1. vim的几种模式和按键映射 转载自:[1] Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手.vi ...

  3. import和from import陷阱二

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 #from os import path import os.path path='/home/vamei/doc/file.txt' ...

  4. Aspose Word模板使用总结

    Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"< ...

  5. thrift编译安装

    关于thrift的介绍:http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/ Apache Thrift 是 Facebook 实现 ...

  6. bigworld源码分析(2)—— loginApp分析

    loginApp是整个bigworld进行用户认证的服务,是用户进入游戏的第一步.本篇主要针对loginApp的认证流程,如何和其他服务进行交互,以及loginApp针对多服务负载的不同做法进行分析. ...

  7. MySQL you *might* want to use the less safe log_bin_trust_function_creators variable

    因为在打开日志文件情况下执行以前建立的 自定义函数报错详细分析如下: 1 .调用自定义函数 mysql>  select sp_function_dbdh_three();  #以前自定义的函数 ...

  8. Scalding初探之三:Hadoop实战

    Java版本 如果在Scala工程中混入Java类导致java版本不match,可能会抛错 java.lang.UnsupportedClassVersionError: XXX Unsupporte ...

  9. 通过printf设置Linux终端输出的颜色和显示方式

    转载自:http://www.cnblogs.com/clover-toeic/p/4031618.html 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出 ...

  10. java 泛型思考

    java泛型并没有像C++那样原生支持,因此,为了保证迁移兼容性,编译器在编译时会擦除具体类型,因此不能通过泛型调用具体方法. 如果调用必须用extends关键字限定范围,也正是由于这个原因,java ...