[컴퓨터네트워크] 05. 통신절차

2024. 4. 10. 23:27·Computer Science/Network
목차
  1. 데이터 교환 절차
  2. MAC 주소
  3. 패킷과 프레임 교환
  4. 패킷과 프레임 전달
  5. 패킷과 프레임 구조
  6. ARP 동작
  7. 스테이션의 수신 동작
  8. 목적지가 같은 네트워크에 있는 경우
  9. 목적지가 같은 네트워크 인지 판단
  10. 목적지가 같은 네트워크인 경우 동작
  11. 다른 네트워크인 경우 동작
  12. 목적지가 다른 네트워크인 경우 동작
  13. DNS 이름을 사용하는 경우
  14. 목적지와 DNS 서버가 다른 네트워크인 경우 동작
  15. IP 주소 할당

통신절차


데이터 교환 절차

  • 실제 통신이 이루어지는 절차
  • 패킷과 프레임의 교환 과정 이해
  • IP Address / MAC Address / ARP의 이해
  • Address Resolution Protocol(ARP)
    • 실제 Local 통신에서는 MAC 주소가 필요함
      • end to end 통신에서 IP를 사용하지만
      • 인접 시스템간 통신에서는 MAC을 사용
    • 통신하려는 IP 주소를 갖는 시스템의 MAC주소를 해결(알아야 함)
    • ARP 요청은 Broadcast됨 --> 모든 Station이 수신
    • ARP 응답은 Unicast임 --> MAC 주소 해결

MAC 주소

  • IEEE 할당, 48비트(6 Bytes)
    • 24비트는 제조 회사 할당, 24비트는 Serial Number
  • 16진 표시
    • 60-EB-69-83-74-D7 or 60:EB:69:83:74:D7
    • 16진수 12개, 즉 옥텟 6개로 나타낸다
  • MAC 주소 종류
    • Broadcast
      • 모든 Station이 수신하는 주소
      • FF:FF:FF:FF:FF:FF(모든 비트가 1)
      • IP Broadcast나 ARP 요청에서 사용됨
    • Multicast
      • 그룹에 가입한 Station 수신하는 주소 (즉. 특정 Station만 수신)
      • Multicast IP를 가지고 만든다
    • Unicast
      • 특정한 하나의 스테이션 주소
      • LAN 카드에 내장된 주소

패킷과 프레임 교환


패킷과 프레임 전달

  • 데이터 전달은 컴퓨터와 컴퓨터, 컴퓨터와 라우터 간에 IP 패킷 전달을 통해 이루어짐
  • 하나의 Station(IP를 sa, MAC을 SA라고 하자)이 인접한 다른 스테이션(IP를 da, MAC을 DA라고 하자)으로 패킷을 보내려 할 때
    • 프레임을 만들어 패킷을 담아보내야 함
    • 프레임을 만들 때는 목적지 MAC 주소(DA)와 발신자 MAC 주소(SA)가 필요
    • 발신자 MAC 주소(SA)는 자신의 LAN 카드에 있음
    • 목적지 MAC 주소(DA)를 알 수 있는 방안이 필요함
      • ARP가 목적지 MAC 주소(DA)를 해결

패킷과 프레임 구조

  • IP packet
    • Header(sa, da), Data
  • MAC Frame(Ethernet)
    • DA(6바이트)
    • SA(6바이트)
    • Type(2바이트)
    • DATA(~1500바이트, IP packet에 해당하는 부분)
    • FCS(4바이트)

ARP 동작

  • 패킷을 보내려는 스테이션은 목적지 스테이션의 MAC주소를 찾는 ARP 요청 패킷을 방송(Broadcast)
  • 연결된 모든 스테이션이 ARP 요청 패킷을 수신
  • 목적지 스테이션이 자신의 MAC 주소 정보를 담은 ARP 응답 패킷을 전송(Unicast)
  • 송신 스테이션은 목적지 IP 주소와 MAC 주소 매핑정보를 ARP 캐시에 저장하고 일정기간 사용
    • ARP cache = 목적지 IP 주소 + MAC 주소
  • 사용하지 않는 시간이 길어지면, 타임아웃되어 매핑 정보가 캐시에서 사라짐
  • ex) A->B ping
arp -a // 모든 arp 테이블을 확인, 초기에 아무것도 없는 상태
ping 192.168.1.10
  • 프레임에 담아서 보내야 함 --> MAC주소 필요 --> ARP Broadcast
  • ARP
ff:ff:ff:ff:ff:ff:을 Broadcast
192.168.1.10가 수신하고 MAC 주소를 reply함(0:1:3:1d:98:b8)
echo request // ping을 보냄
echo reply // B가 response

arp -a // ARP 캐시
192.168.1.10 at 00:01:03:1D:98:B8 ...

스테이션의 수신 동작

  • 모든 스테이션은 브로드캐스트 프레임을 수신함
  • 각 스테이션은 자신이 가입한 멀티캐스트 프레임을 수신함
  • 각 스테이션은 목적지 MAC 주소가 자신의 MAC 주소와 일치하는 Unicast Frame 수신
  • 브리지는 모든 프레임을 수신하여 처리(Promiscuous Mode)
  • 라우터는 일반 스테이션과 같이, 모든 브로드캐스트, 가입된 멀티캐스트, 자신에게 오는 유니캐스트 프레임 수신

목적지가 같은 네트워크에 있는 경우

  • 송신자와 수신자는 인접 시스템임(직접 통신 가능함)
  • 송신 스테이션은 목적지 MAC 주소를 DA에 넣고, SA에 자신의 MAC 주소를 담은 프레임을 넣고, 프레임의 데이터 영역에 패킷을 넣어 전송
  • 모든 스테이션은 프레임을 감지하다가, DA 주소와 자신의 MAC 주소와 일치하는 프레임 수신
  • 수신 스테이션이 MAC 프레임 수신 후 오류검사
  • 프레임으로 부터 패킷을 분리하여 상위계층으로 전달

목적지가 같은 네트워크 인지 판단

  • 스테이션의 서브넷 마스크를 이용해 판단
  • 같은 네트워크인 경우
    • Source IP & Subnet Mask 결과와 destination IP & Subnet Mask의 결과가 같음 --> 직접 통신 가능
    • ex) 10.10.1.1, 10.10.2.1, 255.255.252.0
  • 다른 네트워크인 경우
    • Source IP & Subnet Mask 결과와 destination IP & Subnet Mask의 결과가 다름 --> 직접 통신 불가능
      • 라우터에게 보내면 라우터가 알아서 전달
    • ex) 10.10.1.1, 10.10.2.1, 255.255.255.0

목적지가 같은 네트워크인 경우 동작

  • Source -> (목적지MAC) ARP 요청 담은 프레임 전송 -> Destination
  • Destination -> (목적지MAC) ARP 응답 담은 프레임 전송 -> Source
    • MAC 주소 해결
  • 패킷을 담은 프레임을 목적지로 전송

다른 네트워크인 경우 동작

  • 소스 노드에서 목적지가 다른 네트워크에 있다고 판단되는 경우, 패킷을 라우터로 보내기 위한 동작 개시
  • 라우터의 MAC 주소를 ARP를 통해 해결
  • 라우터의 MAC 주소를 MAC 프레임의 DA 필드에 넣고, 보내려는 패킷을 DATA 필드에 넣은 프레임을 만들어 송신
    • 프레임을 라우터가 수신함
  • 라우터는 패킷의 헤더에 있는 목적지 주소를 보고, 라우팅 테이블을 참조하여 패킷을 목적지로 전달

목적지가 다른 네트워크인 경우 동작

  • Source -> (라우터MAC) ARP 요청 담은 프레임 전송 -> Router
  • Router -> (라우터MAC) ARP 응답 담은 프레임 전송 -> Source
    • MAC 주소 해결
    • Source -> 목적지로 가는 패킷을 담은 프레임을 라우터로 전송 -> Router
      • 프레임 : DA + 라우터의 MAC 주소
  • 라우터가 패킷을 풀면 진짜 목적지의 주소가 있음 --> 목적지 방향으로 전달

DNS 이름을 사용하는 경우

  • 목적지 주소가 www.google.co.kr과 같이 도메인 이름을 입력한 경우
    • DNS 서버에게 질의하여 도메인 이름에 해당하는 IP 주소 값을 먼저 해결해야 함
  • DNS 서버로 가는 패킷을 만들어 보내는 절차가 선행됨
  • DNS 서버가 같은 네트워크에 있을 수 있고, 다른 네트워크에 있을 수도 있음
    • Subnet mask로 판단
  • 같은 네트워크인 경우
    • ARP로 DNS 서버의 MAC 주소를 해결해서 보내야 함
  • 다른 네트워크인 경우
    • DNS 서버로 보내는 질의 패킷을 라우터로 보내야 함

목적지와 DNS 서버가 다른 네트워크인 경우 동작

  • Source -> (라우터MAC) ARP 요청 담은 프레임 전송 -> Router
  • Router -> (라우터MAC) ARP 응답 담은 프레임 전송 -> Source
    • MAC 주소 해결
  • Source -> DNS 질의 패킷 담은 프레임 라우터로 전송 -> Router
    • Router -> DNS 질의 패킷을 담은 프레임을 DNS로 전달 -> DNS
    • DNS -> DNS 질의 응답 패킷 담은 프레임을 라우터가 수신 -> Router
  • Router -> DNS 질의 응답 패킷 담은 프레임 전송 -> Source
    • 목적지 IP 주소 확인
  • Source -> 목적지로 가는 패킷을 담은 프레임을 라우터로 전송 -> Router
  • Router -> 목적지 방향으로 전달

IP 주소 할당

  • 통신에 필요한 주소관련 정보
    • IP 주소
    • 서브넷마스크
    • 게이트웨이주소(라우터 주소)
    • DNS 서버 주소
    • 보조 DNS 서버 주소
  • 자동 할당
    • DHCP
    • 임대시간 만료 후 재할당
  • 수동 할당
    • 사람이 직접 입력
    • 계속 사용
    • 중복되는 주소가 있는 경우 통신이 안되거나, 해당 네트워크 비활성화

'Computer Science > Network' 카테고리의 다른 글

[컴퓨터 네트워크] 07. IPv6(차세대 IP)  (0) 2024.04.17
[컴퓨터네트워크] 06. 멀티캐스트 라우팅(Multicast Routing)  (0) 2024.04.17
[컴퓨터네트워크] 04. 유니캐스트 라우팅(2) - 유니캐스트 라우팅 프로토콜  (0) 2024.04.10
[컴퓨터네트워크] 04. 유니캐스트 라우팅(1) - Unicast Routing  (0) 2024.04.10
[컴퓨터네트워크] 03. Network Layer Protocols(3) - Mobile IP  (0) 2024.04.10
  1. 데이터 교환 절차
  2. MAC 주소
  3. 패킷과 프레임 교환
  4. 패킷과 프레임 전달
  5. 패킷과 프레임 구조
  6. ARP 동작
  7. 스테이션의 수신 동작
  8. 목적지가 같은 네트워크에 있는 경우
  9. 목적지가 같은 네트워크 인지 판단
  10. 목적지가 같은 네트워크인 경우 동작
  11. 다른 네트워크인 경우 동작
  12. 목적지가 다른 네트워크인 경우 동작
  13. DNS 이름을 사용하는 경우
  14. 목적지와 DNS 서버가 다른 네트워크인 경우 동작
  15. IP 주소 할당
'Computer Science/Network' 카테고리의 다른 글
  • [컴퓨터 네트워크] 07. IPv6(차세대 IP)
  • [컴퓨터네트워크] 06. 멀티캐스트 라우팅(Multicast Routing)
  • [컴퓨터네트워크] 04. 유니캐스트 라우팅(2) - 유니캐스트 라우팅 프로토콜
  • [컴퓨터네트워크] 04. 유니캐스트 라우팅(1) - Unicast Routing
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Spring
        • MVC
        • DB
        • 핵심 원리
        • JPA
      • WEB
        • HTML
        • CSS
        • HTTP
        • Application
      • Computer Science
        • Network
        • Database
        • OS
        • 시스템 프로그래밍
        • 컴퓨터구조
      • Algorithm
        • Divide&Conquer
        • Sort
        • Greedy
        • DP
        • Backtracking
        • NP-Complete
        • Graph
      • Data Structure
        • 자료구조
        • C++ STL
        • Java Collection
      • 소프트웨어 공학
        • 시험 공부 정리
        • Theorem
      • Programming Language
        • Python
        • Java
        • C
        • C++
        • Rust
        • Theory
      • Unix_Linux
        • Common
      • React
      • PS
        • BOJ
        • Tip
        • 프로그래머스
        • CodeForce
      • Book Review
        • Clean Code
      • Math
        • Linear Algebra
      • AI
        • DL
        • ML
        • DA
        • Concepts
      • 우아한테크코스
        • 프리코스
      • Project Review
      • LegacyPosts
      • Android
      • Apple
        • Mac
        • IPhone
        • IPad
      • 모니터
      • Diary
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
lumana
[컴퓨터네트워크] 05. 통신절차
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.