2025/04/15 4

유선 LAN(IEEE802.3) 이더넷 - 데이터링크 계층 관점

본 게시글은 그림으로 공부하는 TCP/IP 구조 도서를 참고하였습니다. 같이보기: 이더넷 - 물리 계층 관점 지금부터 이더넷의 데이터링크 계층에서의 역할에 대해 알아보자.알아볼 내용은 다음과 같다.데이터링크 계층의 역할이더넷 프레임MAC 주소이더넷을 위한 장비, L2 스위치가 제공하는 기능데이터링크 계층의 역할물리 계층과 비교하면물리 계층은 디지털 데이터를 전파 신호로 변환하고,데이터링크 계층은 디지털 데이터 전체의 정합성 체크를 수행한다.물리계층과 연계해서 동작하기 때문에, 물리 계층과 함께 프로토콜로 정의되어 있다.이더넷 프레임정의이더넷 프로토콜에 의해 캡슐화된 패킷을 의미한다.이더넷 프레임 포맷의 종류이더넷 II 규약사실상 표준IEEE802.3 규약이더넷 II에 몇가지 기능을 더 추가했지만, 이미 ..

네트워크 전송 방식의 종류 - 유니캐스트, 브로드캐스트, 멀티캐스트, 애니캐스트

주의) L3 레이어에 한정된 개념이 아니니, 좀 더 포괄적인 개념으로 이해하자.유니캐스트일반적인 1:1 통신을 의미한다.인터넷 통신의 대부분이 이 유니캐스트로 분류된다.브로드캐스트해당 브로드캐스트 도메인에 속하는 자신 외 모두와 진행하는 1:n 통신을 의미한다.브로드캐스트 그룹은 데이터링크 계층에선 로컬 이더넷 네트워크가 될 수도 있고, 네트워크 계층에선 좀 더 넓은 범위가 될 수 있다.멀티캐스트특정 그룹에 속한 개체와의 1:n 통신을 의미한다.1이 자신을 의미하고,n이 특정 그룹을 의미한다.브로드캐스트보다 트래픽 효율이 높다.애니캐스트 (L3 한정)멀티캐스트 그룹에서, 가장 가까운 노드를 찾아 통신하는 방식을 의미한다.(1km은 예시임에 유의하자.)IPv6에서 추가된, L3 레이어의 새로운 기능이다.가..

스택과 힙, 힙의 단편화

최근 즐겨보는 유튜브 채널에서 재밌는 면접 질문을 보았다.웹 백엔드 개발자를 위한 주제는 아닌것 같긴 한데, 주제가 상당히 흥미롭고 재밌어서 작성해본다. GC에 대한 이해도를 높힐 수 있어 좋은 시간이었다.스택과 힙의 차이멀티스레딩 환경에서의 스택과 힙의 차이스택해당 스레드용메모리의 수명 파악 가능코드의 깊이로지나치게 깊은 스택은, 코드의 가독성을 떨어트린다.힙멀티스레드 환경에서의 전역변수 역할고수준 언어에서, 스택과 힙은 반드시 필요하다.메모리 단편화네이티브 메모리 할당의 문제점malloc은 느리다.시스템 콜이 필요함이는 nio의 native memory 할당에도 같이 적용된다.따라서, 메모리 할당과 해제에 신중해져야 한다.할당받은 native 메모리를, 직접 쪼개가며 재사용해야 할 수도 있다!메모리를..

메모리 압축(Memory Compaction), 그리고 Garbage Collector

우리는 단편화 문제에서 메모리 압축이 필요한 이유를 알 수 있었다. 지금부터 메모리 압축에 대해서 알아보자.메모리 압축 방식가장 기본적이고 간단한 메모리 압축은 두가지 방식으로 나뉘어진다.Sliding살아있는 객체들을 전부 한쪽 끝으로 몰아넣는다.장점추가 메모리의 요구가 없다.단점전체 메모리가 크게 이동해야 하기 때문에, stop-the-world 시간이 길어진다.Copying Compaction동작 방식공간을 절반으로 나눈다.1회 압축시마다, 데이터를 반대쪽으로 이동시킨다.이를 압축마다 반복한다.장점구현이 단순하다.Bump Allocator 연산을 사용할 수 있기 때문에, Stop-the-world 시간이 빠르다.sizeof(object) 연산을 이용해 다음 빈 포인터를 O(1)만에 찾는다.메모리의 이..