GitHub

https://github.com/Choidongjun0830

CS

2.2 TCP/IP 4계층 모델

gogi masidda 2024. 9. 4. 00:58

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.

 

TCP/ IP 4계층 모델

  • TCP/IP 4계층
    • Application
      • FTP, HTTP, SSH, SMTP, DNS
      • 응용 프로그램이 사용되는 프로토콜 계층. 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 계층
    • Transport
      • TCP, UDP, QUIC
      • 송신자와 수신자를 연결하는 통신 서비스 제공. 연결 지향 데이터 스트림을 지원하고, 신뢰성, 흐름 제어를 제공
      • 애플리케이션 계층과 인터넷 계층 간의 중계 역할
      • TCP
        • 패킷 간의 순서를 보장. 신뢰성 있는 전송
        • 3-way handshake로 클라이언트와 서버 간의 연결이 성립됨.
          • ①SYN 단계: 클라이언트가 서버로 SYN 전송. SYN에는 클라이언트의 ISN이 담김
          • ②SYN + ACK 단계: 클라이언트의 SYN를 서버가 수신. => ACK 전송. 그리고 SYN도 전송. SYN에는 서버의 ISN이 담김
          • ③ACK 단계: 서버의 SYN을 클라이언트가 수신. 클라이언트는 ACK를 서버에 전송.
          • 위 단계를 거쳐서 클라이언트와 서버 간의 연결이 성립된다.
          • UDP는 이 단계를 거치지 않아 신뢰성을 보장하지 않는다.
        • 4-way handshake로 클라이언트와 서버 간의 연결이 닫힘. 
          • ①클라이언트가 서버에게 FIN 전송. 클라이언트의 상태를 FIN_WAIT_1로 설정
          • ②서버가 클라이언트의 FIN을 수신. 서버는 클라이언트에게 ACK를 전송. 서버의 상태를 CLOSE_WAIT로 설정. 클라이언트가 ACK를 받으면 클라이언트의 상태를 FIN_WAIT_2로 설정
          • ③서버는 ACK 전송 후 일정 시간 후에 FIN 전송
          • ④클라이언트는 서버의 ACK를 수신. 클라이언트의 상태를 TIME_WAIT로 설정. 다시 서버에 ACK를 전송. 서버는 클라이언트의 ACK를 수신하여 CLOSED 상태가 된다. 이후에 클라이언트는 일정 시간이 지난 후에 CLOSED 상태가 된다.
          • TIME_WAIT 상태가 있는 이유는 지연 패킷이 발생할 경우를 대비한 것이다. 데이터 무결성을 유지하기 위해. 
      • UDP
        • 패킷 간의 순서를 보장하지 않음. 전송하는 것에 집중.
    • Internet
      • IP, ARP, ICMP
      • 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위한 계층
      • 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달 
    • Link (Network Access) 
      • 이더넷
      • 전선, 광섬유, 무선 등으로 실질적으로 데이터 전

특정 계층이 변경되었을 때, 다른 계층에 영향을 주지 않는다.

  • OSI 7계층
    • TCP/IP의 Application 계층과 대응
      • Application
      • Presentation
      • Session
    • TCP/IP의 Transport 계층과 대응
      • Transport
    • TCP/IP의 Internet 계층과 대응
      • Network
    • TCP/IP의 Link(Network Access) 계층과 대응
      • Data-Link
      • Physical

 

유선은 full-duplex(전이중화) 방식으로 양쪽 장치가 동시에 송수신이 가능하다. full-duplex 방식은 충돌이 일어나지 않아 충돌 방지 매커니즘이 필요 없다.

full-duplex 방식이 불가능했을 때에는 CSMA/CD를 통해 충돌에 대처했다.

  • CSMA/CD
    • 데이터를 보낸 이후에 충돌이 발생하면 일정 시간 이후 재전송하는 방식이다.

 

무선은 half-duplex(반이중화) 방식으로 양쪽 장치가 서로 통신 가능하지만, 동시에는 불가능하다. 

=> 장치가 신호를 수신하기 시작하면 전송이 다 끝날 때까지 응답이 불가능하다. 충돌이 발생할 수도 있다. 그래서 CSMA/CA 방식을 사용한다.

 

  • CSMA/CA
    • 사전에 가능한 충돌 방지. 프레임을 보내기 전 0~2^k-1 사이에서 결정된 랜덤 상수 시간 만큼 대기 후에 전송. 
    • 만약에 전송했는데 충돌이 발생하면 k = k + 1이 됨.
    • 반복하다가 k 값이 사전에 정한 Kmax를 넘으면 그 프레임은 버림.

 

 

728x90

'CS' 카테고리의 다른 글

2.4 IP 주소  (0) 2024.09.06
2.3 네트워크 기기  (0) 2024.09.06
2.1 네트워크의 기초  (3) 2024.08.30
1.2 프로그래밍 패러다임  (1) 2024.08.01
1.1 디자인 패턴  (2) 2024.07.31