4/120

김건호·2022년 2월 10일
0
post-custom-banner

근거리 통신

LAN 전송 방식

베이스 밴드 방식

데이터 전송 시, 디지털 데이터 신호를 변조하지 않고 직접 전송
단일 통신 채널을 이용하므로 모뎀이 필요 없고 비용도 경제적

브로드밴드 방식

부호화된 데이터를 아날로그로 변조하고 필터등을 사용해 제한된 주파수만 동축 케이블 등 전송매체에 전송하는 방식

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

네트워크를 전송하기 전에 현재 채널을 사용중인지를 체크하여 멀티플 액세스가 되는 기능
CD는 Detect, 충돌 감지 기능을 사용해 충돌 여부를 확인

절차

  1. 전송을 위한 프레임 준비
  2. 매체가 사용이 가능한지 여부 확인. 아니라면 사용이 가능할 때까지 대기
  3. 전송 시작
  4. 충돌이 일어났나 확인하고 만약 그렇다면, 충돌 탐치 절차로 이동
  5. 재전송 계수기를 초기화 하고 프레임 전송을 종료

충돌 탐지시 절차

  1. 정체 신호가 전체 송신자에게 전달되도록 하기 위해 최소 패킷전송시간까지 전송을 계속 함
  2. 재전송 계수기의 재전송 시도횟수를 증가
  3. 임의의 시간동안 대기
  4. 1번부터 반복

IPv4

IPv4의 헤더 정보 찾아보기

프로토콜 문서를 확인하기 위해 RFC에 들어갑니다

우리는 IPv4의 헤더 정보를 확인할 거니까, Internet Protocol을 검색해줍니다.(IP만 치면 잘 안나와요)

이렇게 여러개가 나오는데

이걸 선택해주세요! pdf, html을 클릭하면 해당 파일형식으로 다운받을 수 있습니다
문서에 표현되어 있는 IPv4의 헤더 정보

  • Version(4bit) : IP의 버전을 표기합니다. IPv4, IPv6
  • IHL(4bit) : Internet Header Length 헤더의 길이를 나타냅니다. 32 bit는 1 word. IP의 최소 길이는 Version에서 DSC Address까지 총 5word입니다. 따라서 일반적인 경우 5이고 6이상이라면 옵션이 있다는 뜻입니다.
  • Type of service(8bit) : QoS기능을 제공하기 위한 필드.
  • Total Length(16bit) : 전체 패킷에 대한 크기. 최대 1500 byte
  • Identification(16bit) : 패킷의 식별번호
    분할되지 않은 패킷 : 값을 순차적으로 증가
    분할된 패킷 : 동일한 번호 부여
  • Flags(3bit) : 패킷을 분할 할지 말지 제어하는 필드입니다
    DF(Don't Fragment) 패킷 분할을 금지
    MF(More Fragment) 분할된 패킷이 존재. 마지막 패킷을 제외한 이 항목이 1임
  • Fragment Offset(13bit) : 분할되기 전 데이터에서의 상대적인 위치정보(순서번호)
    8bytes의 배수로 지정
    패킷의 최대 크기=1500bytes, 헤더의 최소크기=20bytes(5words)이므로 헤더를 제외하고 최대 크기는 1480bytes입니다. 따라서 1480의 배수로 나오는 경우가 많습니다.
  • Time to Live(8bit) : 패킷의 생존시간. OS에 따라 다름
  • Protocol(8bit) : 상위 계층 프로토콜에 대한 정보 Ex) TCP, UDP
  • Header Checksum(16bit) : 오류를 검출하는 필드
  • Source Address(32bit) : 송신호스트 IP주소
  • Destination Address(32bit) : 수신호스트 IP주소

Wireshark를 통해 직접 확인해보기


헤더 정보에 나타난 순서로 제 wifi에서 통신하고 있는 프로토콜의 정보를 알 수가 있습니다.

MF가 사용되는 상황을 만들고, Frament Offset 확인해보기

Wireshark에서 ip.addr == 8.8.8.8로 검색해줍니다.

cmd창에서 8.8.8.8로 패킷 30000을 신호로 보내봅니다.(이 신호는 패킷의 분할화가 필요합니다)

MF가 활성화 된 모습

분할화 되었기때문에 Fragment Offset이 위에 설명처럼 변화하는 것을 볼 수 있습니다.

-f 옵션은 DF를 활성화 시키는 옵션인데 위와 같은 명령어에 추가를 한다면

30000바이트의 데이터는 분할화가 필요하지만 DF가 걸려있어 전송이 되지 않는 모습

ping 명령어 옵션 확인법 : ping /?

IPv6

16bytes, 즉 128bit로 구성
주소를 읽기 쉽게 하기 위해 16진수 콜론 표기
기존 IPv4 주소를 IPv6 주소로 표현한다면 하위 32비트에는 IPv4주소를 채우고 상위 비트는 모두 0으로 채우는 방식을 사용

IPv4와 IPv6 비교

IPv4IPv6
bit32128
구분자.:
표기숫자10진수16진수
필드 bit816

IPv6 주소의 단축 표현

숫자 앞에 0이 있는 경우

0으로만 구성된 부분

주소당 한 번만 허용

이중 스택

인터넷의 모든 시스템이 IPv6를 사용할 때까지 IPv4와 IPv6를 동시에 사용
패킷의 목적지로 보낼 때 버전을 결정하기 위해 송신측에서 DNS에 질의를 함

터널링

IPv6 패킷은 IPv4를 사용하는 네트워크 영역 통과 시, IPv 패킷 내에 캡슐화, 영역을 통과한 후에는 역 캡슐화

헤더 변환 방식

IP에서 IPv6 패킷 헤더를 IPv4 패킷 헤더로, 또 IPv4 패킷 헤더를 IPv6 패킷 헤더로 변환하는 방식

참고자료 : CSMA/CD, CSMA/CD Procudere

profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽
post-custom-banner

0개의 댓글