Network

혼공네트] 6주차 - 과제 : Ch6 - Ch7. 네트워크 실습 및 심화 과정

Orblangjeee 2025. 2. 25. 17:52
반응형

혼공학습단 13기

 

필수과제


혼자 공부하는 네트워크 p.379

Q1. 다음은 호스트 A와 B 간의 쓰리 웨이 핸드셰이크 과정에서 호스트  A가 호스트 B에게 전송한 첫 번째 SYN 세그먼트의 일부입니다. 쓰리 웨이 핸드셰이크상에서 호스트 B가 호스트 A에게 전송할 다음 세그먼트의 Acknowledgment number(raw)는 무엇일까요?

 

A. 

3588415413

 

위 보기는 와이어샤크를 통해서 확인한 네트워크 TCP 연결 수립 과정이다.

보기에서 Flags : 0x002 (SYN) 인 것을 보면

3-way-handshake 과정 중 첫 번째 과정인  SYN 세그먼트(연결 요청) 패킷이다. 

송수신 방향 세그먼트 세그먼트에 포함된 주요 정보 비유 메시지
A → B SYN 세그먼트 - 호스트 A의 초기 순서 번호
- 1로 설정된 SYN 비트
연결 요청
B → A SYN + ACK 세그먼트 - 호스트 B의 초기 순서 번호
- 호스트 A가 전송한 세그먼트에 대한 확인 응답 번호
- 1로 설정된 SYN 비트
- 1로 설정된 ACK 비트
요청 수락 및 시작
A → B ACK 세그먼트 - 호스트 A의 다음 순서 번호
- 호스트 B가 전송한 세그먼트에 대한 확인 응답 번호
- 1로 설정된 ACK 비트
연결 성립

와이어샤크의 Flags를 펼쳐보면 SYN만 Set (1)로 되어있다.

 

 

  • Sequence Number(relative sequence number) : 실제 순서 번호는 한눈에 파악하기 어렵기 때문에 와이어샤크에서 제공하는 상대적인 순서 번호. 
  • Sequence Number(raw) : 실제 순서 번호. 실제 초기 순서 번호는 임의의 수로 설정된다. 데이터 순서를 유지하고, 재전송/손실을 관리하는 데 사용됨.
  • Acknowledgment number : 가독성을 위해 와이어샤크에서 제공하는 상대적인 확인 응답 번호
  • Acknowledgment number(raw) : 실제 확인 응답 번호. 송신 측에게 어떤 데이터가 정상 수신됐는지 알리는 역할.

 

문제에서는 다음 과정인 SYN + ACK 세그먼트(요청 수락 및 시작)에서의 Acknowledgment number(raw) 를 물어보았는데,

SYN + ACK 세그먼트 패킷에서는 SYN 세그먼트의 패킷을 정상적으로 수신받았으면, 이전 패킷의 순서 번호 Sequence Number(raw) : 3588415412에 1을 더한 3588415413을 확인 응답 번호로 전송한다.

 

 


혼자 공부하는 네트워크 p.407

Q2. 다음 그림은 두 호스트가 TLS 1.3 핸드셰이크를 수행하는 과정을 나타낸 그림 일부입니다. 괄호 안에 들어갈 TLS 관련 메시지로 알맞은 말을 골라 보세요.

① Application Data

② ARP Request

③ ServerHello

④ Finished

 

A.

 

문제에서는 TLS handshake에 대한 과정을 요구하고 있다. TLS handshake의 첫 번째 과정인 ClientHello 메시지가 서버로 전송되면 서버에서는 ServerHello 메시지를 클라이언트로 전송한다. 이 과정을 통해 암호화 키를 만들어 클라이언트와 서버 간에 암호화된 메시지를 송수신할 수 있게 된다. 

 

TLS (Transport Layer Security)

SSL(Secure Sockets Layer)과 같이 인증과 암호화를 수행하는 프로토콜 

  • HTTPS(HTTP over TLS) : HTTP 메시지의 안전한 송수신을 위해 개발된 SSL/TLS를 사용하는 대표적인 프로토콜.
  • HTTPS 메시지 송수신 과정
    1. TCP 3-way-handshake
    2. TLS handshake : 암호화 통신을 위한 키 교환 / 인증서 송수신과 검증이 이루어지는 단계
    3. 암호화된 메시지 송수신
  • TLS handshake
    1. ClientHello : 클라이언트 메시지
      • 암호화된 통신을 위해 서로 맞춰 봐야 할 정보들을 제시하는 메시지
      • 지원 TLS 버전, 암호 스위트(cipher suite; 사용 가능한 암호화 알고리즘과 해시 함수), 키 생성에 필요한 난수 등이 포함
    2. ServerHello : 서버 메시지
      • 제시된 정보들을 선택하는 메시지
      • 선택된 TLS 버전, 암호 스위트, 키 생성에 필요한 난수 등이 포함
    3. 1,2번 과정을 거치고 나면 암호화 통신을 위해 사전 협의해야 할 정보들이 결정됨.
      • 암호화에 사용할 키 생성
    4. 인증서 및 인증서 검증 
      • 서버는 Certificate(인증서) 메시지와 CertificateVerify(인증서 검증을 위한 디지털 서명) 메시지 전송
      • 클라이언트는 이 메시지를 토대로 서버의 공개 키 검증
    5. 암호화 통신 수행 (마무리)
      • 서버와 클라이언트는 TLS 핸드셰이크의 마지막을 의미하는 Finished 메시지를 주고 받음
      • 주고받은 키를 바탕으로 암호화 데이터(Application Data)를 주고받음

 

① Application Data는 TLS handshake를 통해 암호화된 데이터를 주고받는 것을 나타내고,

④ Finished는 TLS handshake의 마지막을 의미하는 메시지를 나타낸다. Finished 메시지는 Application Data와 함께 전송이 가능하다.(TLS 1.3) 

 

② ARP Request는 Addresss Resolution Protocol 동작 과정 중 첫 번째 과정인 ARP 요청을 말한다.

 

ARP (Address Resolution Protocol)

  • 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아내는 프로토콜 (스위치의 MAC 주소 학습은 주체가 스위치, ARP는 주체가 호스트이다.)
  • 사용 이유 : MAC 주소와 IP 주소는 함께 사용하지만, 기본적으로 IP주소(수신지)를 우선 고려하여 사용한다. 이 과정에서 IP 주소는 알지만 MAC 주소를 알지 못하는 상황이 발생하는데, 이 때 ARP 프로토콜을 사용한다.
  • ARP 동작
    1. ARP 요청 (ARP Request)
      • 호스트A가 ‘ARP 요청 브로드캐스트 메시지(ARP 패킷)’ 전송
      • “누가 IP = 192.168.0.10을 가지고 있나요? 제 MAC 주소는 XX:XX:XX:XX:XX:XX이고, 제 IP는 192.168.0.1입니다”
    2. ARP 응답 (ARP Reply)
      • 메시지에 해당하지 않는 호스트들은 메시지를 무시하고, 해당하는 호스트는 자신의 MAC 주소를 담은 ‘ARP응답 유니캐스트 메시지’(ARP 패킷)를 호스트A에게 전송.
      • 호스트 A는 해당 호스트의 MAC 주소를 알게 됨
    3. ARP 테이블 갱신
      • ARP 테이블(ARP Table) : ARP 요청-응답을 통해 알게 된 IP 주소와 MAC 주소의 연관 관계
        • 테이블 항목은 일정 시간이 지나면 삭제 됨. 임의로 삭제 가능
        • 테이블에 등록된 호스트에 대해선 ARP 요청을 보낼 필요 없음

 

추가과제

와이어샤크에서 실제 TCP/UDP 패킷 확인해 보기

 

와... 공부했지만 모르겠다ㅋㅋㅋㅋㅋㅋ아무래도 복습 한 번 더 쫘라락 해야할 것 같다...

그래도 저 까마득한 글자 중 알아볼 수 있는게 있어서 아주 기쁘다 호호

 

 

 

 

더보기

 

반응형