TCP/IP协议详解卷2 第4章 以太网

void
ether_input(ifp, eh, m)
 struct ifnet *ifp;
 register struct ether_header *eh;
 struct mbuf *m;
{
 register struct ifqueue *inq;
 register struct llc *l;
 struct arpcom *ac = (struct arpcom *)ifp;
 int s;
 if ((ifp->if_flags & IFF_UP) == 0) {
  m_freem(m);
  return;
 }
 ifp->if_lastchange = time;
 ifp->if_ibytes += m->m_pkthdr.len + sizeof (*eh);
 if (bcmp((caddr_t)etherbroadcastaddr, (caddr_t)eh->ether_dhost,
     sizeof(etherbroadcastaddr)) == 0)
  m->m_flags |= M_BCAST;
 else if (eh->ether_dhost[0] & 1)
  m->m_flags |= M_MCAST;
 if (m->m_flags & (M_BCAST|M_MCAST))
  ifp->if_imcasts++;
 switch (eh->ether_type) {
#ifdef INET
 case ETHERTYPE_IP:
  schednetisr(NETISR_IP);
  inq = &ipintrq;
  break;
 case ETHERTYPE_ARP:
  schednetisr(NETISR_ARP);
  inq = &arpintrq;
  break;
#endif

  default:
  if (eh->ether_type > ETHERMTU) {
    m_freem(m);
    return;
  } 
 
/* 下面很多都忽略掉了只留下了INET的 */
 }
 s = splimp();
 if (IF_QFULL(inq)) {
  IF_DROP(inq);
  m_freem(m);
 } else
  IF_ENQUEUE(inq, m);
 splx(s);
}
时间: 2024-08-02 17:20:07

TCP/IP协议详解卷2 第4章 以太网的相关文章

《TCP/IP协议详解 卷1》 第二章 Internet 地址结构

Internet 地址结构 连接到Internet的每个设备至少要有一个IP地址.基于TCP/IP协议的专用网络中使用的设备也需要IP地址. 表示IP地址 IPv4地址: 32bit 采用点分四组或者点分十进制表示.例如165.195.130.105 IPv6地址: 128bit 采用块或字段的四个十六位进制数表示.例如5f05:2000:80ad:5800:0058:0800:2023:1d71 该表示方法有以下共识: 块前导0必须省略,如上面的地址可以写成5f05:2000:80ad:580

TCP/IP协议详解卷2 第7章 域和协议

先标注一个错误,domain.h书里说在netinet目录下,但是我的这个却在sys下. 所有domain形成链表,由全局变量domains来指出 struct domain {  int dom_family;  /* AF_xxx */  char *dom_name;  void (*dom_init)  /* initialize domain data structures */   __P((void));  int (*dom_externalize) /* externalize

TCP/IP协议详解

OSI通信协议模型(Open System Interconnection) OSI(开放系统互连)通信协议模型是一个多层的通信协议,由国际标准化组织ISO提出.所谓的开放系统是指允许任意两个具有不同基本体系结构的系统进行通信的一套协议集.理论上,OSI允许任意两台计算机实现通信.OSI模型将网络划分为7层模型: OSI模型中每一层只和紧邻的上下两层通信,高层协议偏重于处理用户服务和各种应用请求,底层协议偏重于处理实际的信息传输.分层的目的在于把各种特定的功能分离开来,各个层次相对独立. TCP

TCP/IP 协议详解内容总结

TCP/IP 协议详解内容总结 TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. http://blog.jobbole.com/91841/

TCP/IP 协议详解

1.主机到网络层协议:以太网协议 2.IP协议 3.网际控制报文协议(ICMP) 4.传输控制协议(TCP) 5.用户数据报文协议(UDP) 6.流控制传输协议(SCTP) 7.地址解析协议(ARP) 联网的各个终端之间能否进行交互的软件基础是网络协议栈,目前主流的网络协议栈是TCP/IP协议栈. 1.主机到网络层协议:以太网协议 主机到网络层主要为IP协议和ARP协议提供服务.发送和接收网络数据报.本层中由于要实现跨网和跨设备的互通,有很多的实现方式,这里我们只关注以太网的实现方式. 以太网是

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

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

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP 协议详解和运作过程

一.TCP/IP协议族 TCP/IP协议族体系结构及主要协议.png 1.数据链路层 ARP协议和RARP协议,它们实现了IP地址和机器物理地址之间的相互转化 ARP协议(Address Resolve Protocol,地址解析协议) RARP协议(Reverse Address Resolve Protocol,逆地址解析协议) 作用:网络层是用IP地址寻址一台机器,而数据链路层是用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转化成其物理地址,这就是ARP协议的用途.RARP协

TCP/IP协议详解——邮差与邮局

信号的传输总要符合一定的协议.比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号.这样一个“狼烟=敌人入侵”就是一个简单的协议. 信号的传输总要符合一定的协议(protocol).比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号.这样一个“狼烟=敌人入侵”就是一个简单的协议.协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字母.比如SOS(***—***, *代表短信