Linux/Linux Network

리눅스 네트우크 도입 2

Hans_S_92 2022. 6. 23. 01:09

호스트와 네트워크 순서 변환

리틀엔디안 > 메모리의 가장 하위 주소를 먼저 기록하는 것(Intel)

빅엔디안 > 메모리의 가장 상위 주소를 먼저 기록하는 것(모토로라)매크로 의미(short는 2바이트, long 4바이트)

htons host-to-network short
htonl host-to-network long
ntohs network-to-host short
ntohl network-to-hos

이 매크로는 일반 헤더 파일 include/linux/byteorder/generic.h에 정의됨.

아키텍처별로도 존재하는데 아키텍처 디렉터리인 include/asm-xxx/ 아래에 있다.

패킷을 전달받아서 까보려는데 호스트가 리틀엔디안, 빅엔디안마다 값이 달라질 것이다. 따라서 프로토콜별로 어떤 엔디안을 사용하지는 정해야한다. TCP/IP 스택은 빅엔디안 모델을 사용한다.


캐시버그

일부러 버그 관련된 상황을 연출시키는 매크로로 BUG_ON은 에러 출력하고 패닉을 일으키고, BUT_TRAP은 입력 조건이 거짓이면 커널 경고 메시지를 출력한다.

통계

캐시 조회 성공/실패, 메모리 할당 성공/실패 등과 같은 특정 조건 발생의 통계치를 수집하는 기능

시간 측정

커널은 특정 시점 이후에 어느 정도의 시간이 지났는지 측정할 필요가 있다.