
TCP/IP学习笔记
文章平均质量分 71
此专栏是学习TCP/IP时,随手写下来的笔记,方便以后查阅。
教材是谢希仁老师的《计算机网络》。
主要内容是:网络层IP,运输层TCP,应用层DNS HTTP FTP。
微岩
这个作者很懒,什么都没留下…
展开
-
Linux C 网络编程——6. IO阻塞、非阻塞、复用、信号驱动、异步驱动
在Linux中进程空间和内核空间是分开的,系统调用是在Kernel中,IO 数据会先复制到进程空间,这样进程才能访问。所以Linux I/O分为2个步骤:等待数据和复制数据1. 阻塞I/O(Blocking IO)socket的默认方式。请求IO进程(recvfrom)会一直处于阻塞状态,这种效率极低。2. 非阻塞IOrecvfrom不会阻塞,通过不断查询K原创 2013-11-05 18:27:49 · 2700 阅读 · 0 评论 -
Linux C 网络编程——5. 并发服务器
1. 原理在Linux C 网络编程——4. 简单TCP Socket程序中实现了一个最基本的基于TCP的CS通信,这里介绍一种可以允许Server端可以同时处理多个请求(并发服务器)。原理:每次accept服务器调用fork(),创建一个子进程处理请求。2. 实现只需要修改上一篇文章中的Server.c的while循环即可while(1){ addr_原创 2013-11-05 17:26:05 · 2546 阅读 · 0 评论 -
Linux C 网络编程——4. 简单TCP Socket程序
根据图中的流程,实现一个最简单的TCP程序。1. 客户端功能:发送一个字符串给服务器/* ============================================================================ Name : SimpleSockTCPClient.c Author : wistone Versio原创 2013-11-03 15:31:43 · 9551 阅读 · 2 评论 -
Linux C 网络编程——3. TCP套接口编程
1. 基本流程2. socket()int socket(int domain, int type, int protocol);socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上收发数据,如果socket()调用出错则返回-1。(1)domain:AF_INET:IP原创 2013-10-30 19:58:54 · 2883 阅读 · 0 评论 -
Linux C 网络编程——2. 基础
1. 地址存储结构头文件 : netinet/in.hIPv4:struct in_addr{ in_addr_t s_addr; //uint32};struct sockaddr_in{ uint8_t sin_len; sa_family_t sin_family; //地址族 in_port_t sin_原创 2013-10-30 19:19:25 · 2005 阅读 · 0 评论 -
Linux C 网络编程——1. 大端序和小端序
1. 字节序数据在内存中有2种存放方式:大端序(Big-Endian):低位字节放在高位地址小端序(Little-Endian):相反x86系列则采用little endian方式存储数据如:0x12345678数据以8bit位单位,在内存中的存储如下:Big Endian 低地址原创 2013-10-30 18:53:07 · 2760 阅读 · 0 评论 -
TCP/IP笔记 四.应用层(3)——HTTP
1. URLURL(Uniform Resource Locator) 相当于一个文件名在网络范围的扩展。1.1 格式schema://host[:port#]/path/.../[?query-string][#anchor]scheme 指定低层使用的协议(例如:http, https, ftp)host H原创 2013-09-17 20:30:50 · 2147 阅读 · 1 评论 -
TCP/IP笔记 四.应用层(2)——FTP
1. FTP(File Transfer Protocol)文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。1.1 网络环境下复制文件的复杂性:(1) 计算机存储数据的格式不同。(2) 文件的目录结构和文件命名的规定不同。(3) 对于相同的文件存取功能,操作系统使用的命令原创 2013-09-17 10:10:00 · 2066 阅读 · 0 评论 -
TCP/IP笔记 四.应用层(1)——DNS
1. DNSDNS(Domain Name System ):域名系统,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP。2. 域名结构通常 Internet 主机域名的一般结构为:主机名.三原创 2013-09-16 11:37:54 · 2639 阅读 · 1 评论 -
TCP/IP笔记 三.运输层(4)——TCP链接管理与TCP状态机
1. 建立连接三次握手(1)A 的 TCP 向 B 发出连接请求报文段,其首部中的同步比特 SYN 应置为 1,并选择序号 x,表明传送数据时的第一个数据字节的序号是 x。(2)B 的 TCP 收到连接请求报文段后,如同意,则发回确认。(3)B 在确认报文段中应将 SYN 置为 1,其确认号应为 x + 1,同时也为自己选择序号 y。(4)A 收到此报文段后,向 B 给原创 2013-09-13 16:06:46 · 2699 阅读 · 0 评论 -
TCP/IP笔记 三.运输层(3)——TCP超时重传算法
TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段1. 平均往返时延RTT往返时延:一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段的往返时延平均往返时延new_RTTs = a* (old_RTTs) + (1 - a) * (新的RTT样本) 0a:(1)若 a原创 2013-09-13 15:54:35 · 2959 阅读 · 0 评论 -
TCP/IP笔记 三.运输层(2)——TCP 流量控制与拥塞控制
TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。TCP 的流量控制与拥塞控制发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。1.原创 2013-09-13 15:34:47 · 2479 阅读 · 0 评论 -
TCP/IP笔记 三.运输层(1)——UDP,TCP
1. 运输层1.1 两种协议:TCP和UDP。(1)TCP:提供了一种可靠的数据传输服务,TCP是面向连接的,只有链接建立起来后才能通信。(2)UDP:是把数据直接发出去,而不管对方是不是在收信,就算是UDP无法送达,也不会产生ICMP差错报文。1.2 上下层(1)TCP,UDP不知道数据在信道中经过了哪些路由器,(2)网络层(那些路由器)不知道TCP,UDP是否建立了原创 2013-09-13 14:00:46 · 2595 阅读 · 0 评论 -
TCP/IP笔记 二.网络层(3)——广播,多播,IGMP
1. 多播与广播1.1 广播一般说来ARP,或者路由协议RIP应该是以广播的形式播发的。1.2 多播多播可明显地减少网络中资源的消耗。1.2.1 特点(1) 多播使用组地址—— IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。 (2) 永久组地址——由因特网号码指派管理局 IANA 负责指派。(3) 动态的组成员 (原创 2013-09-11 20:11:16 · 3206 阅读 · 0 评论 -
TCP/IP笔记 二.网络层(2)——ICMP,RIP,OSPF,BGP
5. ICMPICMP (Internet Control Message Protocol) 作用:提高 IP 数据报交付成功的机会。5.1 特点ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 不是高层协议,而是 IP 层的协议。ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。5.2 格式原创 2013-09-11 17:36:21 · 4829 阅读 · 0 评论 -
TCP/IP笔记 二.网络层(1)——IP,子网,CIDR
1. IPIP 是 TCP/IP 体系中两个最主要的协议之一 。与 IP 协议配套使用的还有四个协议: (1)ARP (Address Resolution Protocol)地址解析协议 (2)RARP (Reverse Address Resolution Protocol)逆地址解析协议 (3)ICMP(Internet Control Message Protocol原创 2013-09-11 14:44:24 · 3110 阅读 · 0 评论 -
TCP/IP笔记 一.综述
1. TCP/IP分层TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层,如下图:OSI协议是国际标准的网络协议,但是由于OSI的实用性等问题造成OSI没有流行起来。目前国际上广泛应用的是TCP/IP协议。一般情况下为了学习,通常往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,如下图:(1)应用层:Ema原创 2013-09-11 14:09:26 · 2991 阅读 · 0 评论