计算机网络基础知识复习汇总:计算机网络基础知识复习
HTTP协议的解析:剖析 HTTP 协议
一个系列的解析文章:
- TCP/IP详解学习笔记(1)-- 概述
- TCP/IP详解学习笔记(2)-- 数据链路层
- TCP/IP详解学习笔记(3)-- IP:网际协议
- TCP/IP详解学习笔记(4)-- ARP 和 RARP
- TCP/IP详解学习笔记(5)-- ICMP:internet 控制报文协议
- TCP/IP详解学习笔记(6)-- IP选路
- TCP/IP详解学习笔记(7)-- 初识运输层
- TCP/IP详解学习笔记(8)-- UDP:用户数据报协议
- TCP/IP详解学习笔记(9)-- 广播,多播,IGMP:网际组管理协议
- TCP/IP详解学习笔记(10)-- DNS:域名系统
- TCP/IP详解学习笔记(11)-- TFTP:简单文本传输协议,BOOTP:引导程序协议
- TCP/IP详解学习笔记(12)-- TCP:传输控制协议
- TCP/IP详解学习笔记(13)-- TCP连接的建立与终止
- TCP/IP详解学习笔记(14)-- TCP可靠传输的实现
- TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制
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协议学习笔记的更多相关文章
-
tcp/ip协议学习笔记一
一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什 ...
-
TCP/IP协议学习之实例ping命令学习笔记
TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...
-
TCP/IP协议学习(五) 基于C# Socket的C/S模型
TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...
-
TCP/IP协议精华笔记
1.简介 TCP/IP协议并非单指TCP协议.IP协议,它是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议.ICMP(Internet Control Mes ...
-
TCP/IP协议学习-1.概述
目录 TCP/IP协议概述 分层 延伸知识 FTP例子 为什么需要网络层和传输层 TCP/IP的分层 封装 分用 总结 本文主要摘抄自书籍<TCP/IP详解卷一:协议>与TCP协议相关内容 ...
-
TCP/IP协议学习(四) 协议概述
生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢 ...
-
TCP/IP协议学习(四) 基于C# Socket的Web服务器---静态资源处理
目录 1. C# Socket通讯 2. HTTP 解析引擎 3. 资源读取和返回 4. 服务器测试和代码下载 Web服务器是Web资源的宿主,它需要处理用户端浏览器的请求,并指定对应的Web资源返回 ...
-
TCP/IP协议学习和理解
TCP:Transmission Control Protocol-传输控制协议 IP:Internet Protocol-网络协议 TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP ...
-
TCP/IP协议学习
计算机网路学得不好,首先先放个OSI七层网络模型吧 在协议的控制下,上层对下层进行调用,下层对上层进行服务, 上下层间用交换原语交换信息.这样可以提高传输速率,并且保证数据安全,所以说其实每一层都有存 ...
随机推荐
-
LeetCode 1. Two Sum
Problem: Given an array of integers, return indices of the two numbers such that they add up to a sp ...
-
解决angular2页面刷新后报404错误
如果你的angular项目部署到一个tomcat容器里面,localhost:8080是JavaWeb的主页,localhost:8080/driver/login是你angular2项目的登陆地址. ...
-
过滤文本文档中的数据并插入Cassandra数据库
代码如下: package com.locationdataprocess; import java.io.BufferedReader; import java.io.File; import ja ...
-
Angularjs中编写指令模版
angular.module('moduleName', []).directive( 'namespaceDirectiveName', [ function() { return { restri ...
-
java线程学习——汉堡销售问题
汉堡店中有一个负责做汉堡的厨师,一个负责销售的营业员,用java线程表示他们的营业过程: 问题原型就是生产者与消费者的问题. 首先定义一个汉堡包箱子类与几个相关的变量类: public class H ...
-
js数组内数字按大小排序实现函数
正常冒泡排序: function evlabc(a) { //排序大小 var i = j = t = 0; for (i = 0; i < a.length; i++) { for (j = ...
-
【翻译自mos文章】Windows平台下的 Oraagent Memory Leak
来源于: Oraagent Memory Leak (文档 ID 1956840.1) APPLIES TO: Oracle Database - Enterprise Edition - Versi ...
-
Squid调试和故障处理
http://blog.zhdata.com/tag/squid第16章 调试和故障处理 16.1 一些通用问题 在讨论通用debug前,我先提起一些经常发生的问题. 16.1.1 “Failed t ...
-
C# 解决datatable写入文件内存溢出问题
1.程序生成目标平台设为x64 2.文件写入后主动回收内存
-
jquery validate(转)
转自:http://blog.sina.com.cn/s/blog_608475eb0100h3h1.html 官网地址:http://bassistance.de/jquery-plugins/jq ...