이더넷 프레임과 구조, 네이글 알고리즘, HTTP의 멱등성

Hyobi Lim·2025년 2월 5일

이더넷프레임 - 데이터 링크계층의 데이터 단위, 이를 기반으로 데이터가 전달

이더넷프레임 필드 구성
● Preamble[7바이트] : 이더넷 프레임 시작
● SFD[1바이트] : 다음 필드부터 주소필드가 시작
● Destination Address[6바이트] : 목적지 주소
● Source Address[6바이트] : 시작지 주소
● EtherType[2바이트] : 데이터링크계층 위의 IP 프로토콜을 정의 (IPv4, Ipv6)
● Payload[가변바이트] : 가변길이 필드, 이진데이터로 구성, IEEE 표준은 최대 페이로드를 1500 바이트로 지정
● FCS[4바이트] : 수신측의 에러검출, CRC 에러검출 기법에 의해 생성된 비트배열이 담김, 비트배열을 기반으로 수신된 데이터가 손상되었는지를 확인하고 에러 확인시에는 해당 프레임을 폐기하고 송신측에 재전송을 요구


네이글 알고리즘 - 네트워크의 효율성을 높이기 위해 네트워크를 통해 전송되어야 하는 패킷의 수를 줄이고 적은 양의 데이터를 자주 보내면 발생되는 대역폭 낭비를 막아주는 방법

네이글 알고리즘의 장점
1. 네트워크 혼잡 감소: 패킷 수가 많으면 네트워크 장비(라우터, 스위치 등)에 더 많은
처리 부담을 주고, 이는 네트워크 혼잡을 증가시킬 수 있음 -> 패킷 수를 줄임으로써 네트워크의 전반적인 혼잡 상태를 개선하고, 패킷 손실률을 줄일 수 있음
2. 오버헤드 감소: 네트워크 패킷은 데이터를 전송할 때 필요한 제어 정보인 헤더를 포함, 작은 패킷들이 많이 전송될 때, 각 패킷에 포함된 헤더의 총량이 상당해져 유용한 데이터 전송보다 많은 대역폭을 소모할 수 있음 -> 패킷의 수를 줄이면 이러한 오버헤드를 감소시켜 더 많은 유용한 데이터를 같은 양의 대역폭으로 전송할 수 있음

네이글 알고리즘의 단점 : 지연시간증가
1. 작은 패킷의 수를 줄이기 위해 데이터를 버퍼링하고, 충분한 양의 데이터가 모일때까지 패킷 전송을 지연
2. ACK를 받기전까지 데이터를 전송하지 않기 때문에 지연시간이 발생할 수 있음, 이로 인해 실시간으로 데이터를 전송해야 하는 애플리케이션(예: 온라인 게임)에서는 적합하지 않음


HTTP의 멱등성 - 하나의 요청이 아닌 여러번 동일한 요청을 보냈을 때 서버가 같은 상태를 가지는 것

HTTP 메서드 중 멱등성을 가지는 메서드: GET, HEAD, OPTIONS, PUT, DELETE
HTTP 메서드 중 멱등성을 가지지 않는 메서드: POST, PATCH

멱등성을 가지는 메서드
1. GET: 서버에서 정보를 가져오는 데 사용, 여러 개의 동일한 GET 요청을 하는 것은 한 번의 요청을 하는 것과 같은 효과 (안전한 메서드)
2. HEAD : GET 요청이 생성하는 응답의 헤더를 검색하는 데 사용, 보통 리소스 전체를 다운로드하는 오버헤드를 피하고 어떤 유형의 데이터가 반환되는지, 해당 리소스가 있는지, 수정날짜 등을 확인하기 위해 사용, GET처럼 서버 상태를 변경하지 않음 (안전한 메서드)
3. OPTIONS : 대상 리소스의 통신 옵션(서버에서 지원하는 HTTP메서드 등)을 가져올 때 사용 (안전한 메서드)
4. PUT: 리소스를 완전히 다른 버전으로 대체, 요청이 반복되면 동일한 리소스가 다시 대체되어 첫 번째 요청 후와 동일한 상태가 됨
5. DELETE: 리소스를 삭제하는 데 사용, 리소스가 삭제되면 삭제 작업을 반복해도 시스템 상태가 더 이상 변경되지 않음

멱등성을 가지지 않는 메서드
1. POST : 일반적으로 새로운 리소스를 생성하는데 사용되며 여러 POST 요청은 여러 리소스를 생성하는 결과를 초래하기 때문에 멱등성을 가지지 않음
2. PATCH : 일반적으로 리소스를 부분적으로 업데이트하는 데 사용되며 멱등성 여부는 PATCH를 실행하는 방법에 따라 달라짐, 예를 들어 필드를 특정값으로 수정하는 것이라면 멱등성을 가지지만 특정 필드의 값을 증가시키거나 해당 배열에 요소를 추가시키는 것이라면 멱등성을 가지지 않음

profile
Front-end Developer 💻🔜

0개의 댓글