Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

TCP/IP 본문

IT/Computer Science

TCP/IP

빌드이너프 2023. 1. 3. 11:22

 

 

더보기

인터넷

  • 전 세계에 걸쳐 파일 전송 등의 데이터 통신 서비스를 받을 수 있는 컴퓨터 네트워크의 시스템
  • 실생활에서 인터넷에 가입하고 사용함
  • 사업자가 만들어 놓은 네트워크 인프라를 사용하는 것
  • 인프라를 통해 데이터 -> 디지털 신호로 전달, 받은 디지털 신호 -> 데이터 전달: 네트워크 통신
  • 네트워크 통신을 위해 미리 정해 놓은 공통된 메뉴얼: 프로토콜
  • TCP/IP: 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 집합

 

더보기

TCP를 알기 전에 OSI 7계층 중  전송계층에 대해 알아보고자 함


전송계층(Transport Layer)

  • 상위 계층들이 데이터의 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층
  • 순차 번호 기반의 오류 제어 방식을 사용
  • 종단 간 통신을 다루는 최하위 계층으로 종단 간 신뢰성 있고 효율적인 데이터를 전송
  • 전송 계층 프로토콜에 TCPUDP

TCP(Transmission Control Protocal)

  • 흐름제어소켓
  • 전송제어 프로토콜은 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나
  • IP와 함께 TCP/IP라는 명칭으로 사용됨
  • TCP는 전송계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜
  • 신뢰할 수 있는 프로토콜, 연결지향형 프로토콜
  • 많은 데이터를 주고 받기 때문에 한 개의 패킷만으로 주고 받기에 무리가 있음
  • 따라서 데이터를 잘게 쪼개서 보내고 많은 패킷을 보냄
  • 이러한 패킷들은 복잡한 인터넷을 통해 목적지로 이동
  • 복잡한 환경에서 데이터들이 유실되지 않거나 올바른 순서대로 도착할 수 있는지에 대한 의문이 생김
  • 이러한 것을 신뢰할 수 있는 프토토콜은 TCP가 가능하게 해줌

TCP 특징

특징 설명
신뢰성 보장 - 패킷 손실, 중복, 순서 바뀜 등이 없도록 보장
- TCP 하위 계층인 IP 계층의 신뢰성 없는 서비스를 보완하여 신뢰성 제공
연결 지향적 특징 - 같은 전송의 UDP가 비연결성인 것과는 달리 ,TCP는 연결 지향적
- 양단간 애플리케이션/프로세스는 TCP가 제공하는 연결성 회신을 통하여 서로 통신
흐름제어
(Flow Control)
- 흐름 제어 기능을 활용하여 송신(송신 전송률) 및  수신(수신 처리율) 속도를 일치시킴
혼잡 제어
(Congestion Control)
- 네트워크가 혼잡하다고 판단될 때는 혼잡에서 기법을 사용하여 송신율을 감속함

TCP 헤더 구조

TCP 헤더 구조

 

필드 설명
Source/Destination Port(각 16비트) - 송신지 Port 번호, 목적지 Port 번호
- 양쪽 호스트 내 종단 프로세스 식별
Sequence Number(32비트) - 바이트 단위로 구분되어 순서화되는 번호
- 이를 통해, TCP 에서는 신뢰성 및 흐름 제어 기능 제공
Acknowledgement Number(32비트) - 확인응답번호/승인번호
- 수신하기를 기대하는 다음 바이트 번호
- 마지막 수신 성공 순서번호 + 1
HLEN(Header Length, 4비트) - TCP 헤더 길이를 4바이트(32비트) 단위로 표시
Flag Bit(6개) - 플래그는 URG, ACK, PSH, RST, SYN, RIN으로 구성
- TCP 연결 설정과 연결 해제 메시지를 구분하는 것이 제어 필드의 기능(제어 필드는 1Bit로 구성)
URG(Urgent) - 긴급 포인터 필드의 값이 유효한지 여부 표시
ACK(Acknowledgment) - ACK 필드의 값이 유효한지 여부 표시
PSH(Push) - 수신 애플리케이션에 버퍼링된 데이터를 상위 계층으로 푸쉬해줄지 여부를 질의하는 역할
RST(Reset) - 강제 연결 초기화
SYN(Synchronize) - 동기화 시퀀스 번호
FIN(Finish) - 남은 송신 측 데이터 없음
Window Size(16비트) - 해당 세그먼트의 송신측이 현재 수신하고자 하는 윈도의 크기(기본 단위는 바이트)
- acknowledgement 필드의 시퀀스 번호보다 큰 값이어야 함
Checksum(16비트) - 헤더 및 데이터의 에러 확인을 위해 사용되는 16비트 체크 섬 필드
Urgent Pointer(16비트) - URG 플래그가 설정된 경우, 이 16비트 필드는 시퀀스 번호로부터의 오프셋을 나타냄
- 이 오프셋이 마지막 긴급 데이터 바이트를 가리킴
Options and Padding - 최대 40 바이트까지 옵션 데이터 포함 가능

TCP 프로토콜 연결/종료 과정

  • TCP는 TCP/IP 모델의 3계층인 트랜스포트 계층의 프로토콜
  • Port번호를 사용하여 도착지 컴퓨터의 최종 도착지인 프로세스에 까지 데이터가 도달하게 하는 모듈(함수)
  • 데이터를 세그먼트(Segment, 출발지, 목적지 PORT, 전송 제어, 순서 검증 정보)로 감싼다
  • 데이터 전달 보증, 순서를 보장 할 수 있는 이유는 3Way handshake과정이 있기 때문

 

3Way handshake

  • TCP를 이용한 데이터 통신을 할 때 프로세스와 프로세스 연결하기 위해 가장 먼저 수행되는 과정
  • 클라이언트가 서버에게 요청 패킷 보냄
  • 서버가 클라이언트의 요청을 받아드리는 패킷 보냄
  • 클라이언트는 이를 최종적으로 수락하는 패킷 보냄

 

소켓

  • 애플리케이션 계층과 트랜스포트 계층 사이에 존재
  • 네트워크(트랜스포트 게층)에서 프로세스(애플리케이션)로 데이터를 전달
  • 프로세스로부터 네트워크로 데이터를 전달하는 출입구 역할함
  • 수신 측 호스트의 트랜스포트 계층은 실제로 데이터를 직접 프로세스로 전달하지 않음
  • 주어진 시간에 수신측 호스트에 하나 이상의 소켓이 있을 수 있으므로, 각각의 소켓은 유일한 식별자를 가짐
  • 이 식별자의 포맷은 UDP 소캣인지, TCP 소캣인지에 따라 달라짐
  • 이때 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업을 역다중화, 그 반대를 다중화라고 함

TCP 프로세스 연결 과정

  • TCP는 연결지향 프로토콜로, 클라이언트와 서버가 서로에게 데이터를 보내기 전, 먼저 TCP 연결 설정을 할 필요가 있음을 의미함
  • TCP 연결을 생성할 때 클라이언트 소켓 주소(IP 주소와 포트 번호)와 서버 소켓 주소(IP 주소와 포트 번호)를 연결과 연관시킴
  • TCP 연결이 설정된 후, 한쪽에서 다른 쪽으로 데이터를 보내려면 소켓을 통해 데이터를 TCP 연결로 보냄
  • UDP에서는 서버가 패킷을 소켓에게 제공하기 전 패킷에 목적지 주소를 붙여야 하지만, TCP는 그렇지 않다는것이 다른점

출처 : 경험의 연장선,  [Network] TCP 연결과정에 대해 알아보자

전반적인 프로세스 연결 과정

환영소켓: 서버 프로그램은 임의의 컴퓨터에서 수행되고 있는 클라이언트로부터의 초기 접속을 처리하는 특별한 출입문(즉, 특별한 소켓)을 가져야 함

 

서버 프로세스가 실행 -> 클라이언트 프로세스는 서버로 TCP 연결을 시도 -> 이러한 초기 접속을 출입문을 두드리는 것으로 표현함(이는 클라이언트 프로세스에서 TCP 소켓을 생성함으로써 가능)

 

클라이언트는 TCP 소켓을 생성할 때 서버에 있는 환영(welcom)소켓의 주소, 즉 서버의 IP 주소와 소켓의 포트 번호 명시

소켓을 생성한 후 서버에게 3-way 핸드세이크를 시도 -> 이상이 없다면, 서버는 이 클라이언트에게 지정된 연결 소켓을 생성(그림과 같이 TCP 연결 설정)

전송 계층에서 일어나는 3-way 핸드세이크를 클라이언트와 서버 프로그램은 전혀 인식하지 못함

 


 

TCP 연결과정(3-way 핸드셰이크)

출처 : 경험의 연장선,  [Network] TCP 연결과정에 대해 알아보자

1단계: 연결 요청단계

  • 클라이언트 측 TCP는 서버 TCP에게 특별한 TCP 세그먼트를 송신
  • 이 특별한 세그먼트는 애플리케이션 계층 데이터를 포함하지 않는다
  • 세그먼트 헤더에 SYN 비트라고 불리는 하나의 플래그 비트를 가짐 -> 이러한 특별한 세그먼트: SYN 세그먼트
    추가로 클라이언트는 최초의 순서번호(client_isn)을 선택 -> 최초의 TCP SYN 세그먼트의 순서번호 필드에 이 번호를 넣음
  • 이 세그먼트는 IP 데이터그램 안에서 캡슐화되고 서버로 송신됨

 

2단계: 연결 승인단계

  • 1단계에서 보낸 데이터그램이 서버 호스트에 도착했을 때, 서버는 데이터 그램에서 TCP SYN 세그먼트를 뽑아냄
  • -> 연결에 TCP 버퍼와 변수들을 할당, 클라이언트 TCP로 연결 승인 세그먼트를 송신
  • 이 연결 승인 세그먼트는 애플리케이션 데이터를 포함하지 않음

그러나 세그먼트 헤더 안에 3개의 중요한 정보를 포함

  1. SYN비트는 1로 설정
  2. TCP 세그먼트 헤더의 확인응답 필드는 client_isn+1로 설정
  3. 자신의 최초의 순서번호(server_isn)을 선택, TCP 세그먼트 헤더의 순서번호 필드에 이 값을 넣음
  • 이 과정은 "나는 당신의 최초 순서번호(client_isn)를 가지고 연결을 시작하기 위해서 당신의 SYN 패킷을 수신(이 연결설정에 동의하고, 나의 최초 순서번호는 server_isn이다"라고 말하는 것과 같음)
  • 연결 승인 세그먼트: SYN-ACK 세그먼트

 

3단계: ACK 단계

  • SYNACK를 수신한 클라이언트는 연결에 버퍼와 변수들을 할당
  • -> 클라이언트 호스트는 서버로 또 다른 세그먼트를 송신
    이 마지막 세그먼트가 서버의 연결 승인 세그먼트를 확인(클라이언트는 TCP 세그먼트 헤더의 확인응답 필드안에 server_isn+1 값을 넣는 것으로 그 일을 함)
  • 연결이 설정되었기 때문에 SYN 비트는 0으로 설정됨
  • 3 way 핸드셰이크의 세 번째 단계는 클라이언트에서 서버로 세그먼트 페이로드에 데이터를 보낼 수 있음

 

앞의 세 단계가 완료

  • 클라이언트와 서버 호스트들은 각각 서로에게 데이터를 포함하는 세그먼트를 보낼 수 있음
  • 이 각각의 다음 세그먼트들에 SYN 비트는 0으로 설정됨
  • 두 호스트들 사이에 3개의 패킷이 송신되는 이유로 TCP 연결 설정 절차: 3Way handshake

IP

  • 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는데 사용하는 통신 프로토콜
  • 인터넷으로 연결된 호스트들간에 데이터 교환을 지원하기 위해서 만들어진 프로토콜

 

IP 특징

비신뢰성(unreliability) - 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않음
- 전송과정에서 패킷이 손상될 수도 있고, 같은 호스트에서 전송한 패킷의 순서가 엉키거나 같은 패킷이 2번 전송 혹은 패킷이 사라질 수도 있음
- 패킷 전송과 정확한 순서를 보장하려면 TCP 프로토콜과 같은 IP 상위 프로토콜을 이용해야 함
비연결성(connectionlessness) - 데이터 전송 이전에 미리 설정과정을 거치지 않음
- 송신자와 수신자가 데이터 전송을 위해 서로 연결될 필요가 없다는 성질
- 송신자는 수신자의 기기가 꺼져 있던지 고장나서 사용 불가능한 상태와 상관없이 데이터 보낼 수 있음
- 하지만 수신자는 데이터를 받지 못함
  • 비신뢰적이고 비연결적으로 만든 이유는 통신 속도 때문
  • 신뢰적이고 연결지향적인 통신을 하기위해 통신속도가 늦어지기 때문
  • 하지만 인터넷 속도가 빨라지고 데이터에 대한 신뢰성이 중요해지기 때문에 IP패킷 위에 TCP 패킷을 덮은 TCP/IP 프로토콜을 자주 사용함

TCP/IP

  • 연결지향적
  • 자체적으로 오류 해결
  • 네트워크 전송 중 순서가 뒤바뀐 메시지를 교정시켜 주는 기능 포함
  • 하나의 프로토콜이 아닌 TCP와 IP를 합쳐 부르는말
  • 송신자가 수신자에게 IP 주소를 사용하여 데이터를 전달하고 그 데이터가 제대로 갔는지, 너무 빠르지 않는지, 제대로 연락이 오는지를 확인하는 것
  • 가장최근에 발명된 컴퓨터와 컴퓨터간의 지역네트워크(LAN) 혹은 광역네트워크(WAN)에서 원할한 통신을 가능하도록 하기 위한 통신규약(Protocol) 으로 정의
  • TCP/IP 는 TCP와 IP 의 2개의 프로토콜로 이루어져 있는데, 통상 IP 프로토콜 위에 TCP 프로토콜이 놓이게 되므로 TCP/IP 라고 부르게 됨

 

TCP/IP 계층

TCP/IP 계층

 

계층 설명
Application Layer - 특정 서비스를 제공하기 위해 애플리케이션끼리 정보를 주고 받음
- FTP, HTTP, SSH, Telnet, DNS, SMTP
ex. 브라우저와 웹서버가 HTTP 요청, 응답을 통해 통신
Transport Layer - 송신된 데이터를 수신측 애플리케이션에 확실하게 전달
- TCP, UDP, RTP, RTCP
- 네트워크 통신을 하는 애플리케이션은 포트번호 사용하는데 Transport Layer은 포트번호를 사용하여 애플리케이션을 찾아줌
Internet Layer - 수신측까지 데이터를 전달하기 위해 사용
- IP, ARP, ICMP, RARP, OSPF
- 송신측, 수신측 모두 IP주소 가지고 있음
- IP 주소를 바탕으로 올바른 목적지로 찾아 갈 수 있게 해줌
Network Access Layer - 네트워크에 직접 연결된 기기 간 전송을 할 수 있게 ㅐ줌
- Etherent PPP, Token Ring
- 물리적 주소인 MAC 사용

TCP/IP 흐름

"www.google.com"을 웹브라우저에 입력할 경우 발생하는 일

 

컨텐츠를 다운(대기열, 캐싱, DNS, 라우팅, ARP, 초기연결 거침)  -> 브라우저렌더링 -> 구글 화면이 나타남 -> 이러한 과정은 캡슐화, 비캡슐화과정을 거쳐서 이뤄지게 됨

 

  • 웹브라우저에 "www.google.com"를 입력: 구글 웹서버의 80 포트로 HTTP Request 메시지를 보내는 것
  • 해당 요청을 인터넷을 통해 구글서버로 전달하기 위해 패킷을 만들어야 함
  • 패킷에는 각 계층에 필요한 정보들이 담겨야 함

 

  • 각 계층별로 HTTP, TCP, IP, Ethernet 프로토콜 사용
  • 브라우저는 도메인에게 도메인에 대한 ip주소를 알고 싶다고 요청함

 

  • OS에서 DNS 서버로 요청을 보내게 됨
  • OS가 DNS 서버를 알고 있는 이유는 컴퓨터에 등록이 되어있기 때문

 

  • DNS를 통해 도메인 이름에 대한 ip주소를 받아오게 됨
  • Ethernet 프로토콜에 대한 헤더를 만들어야 하지만 MAC 주소를 모름
  • (MAC주소 알기 전에 MAC 주소도 목적지인 구글 웹서버의 MAC 주소가 필요할 것인가?)
  • MAC주소는 구글 MAC주소 대신 개인 공유기의 MAC 주소 필요함(공유기[게이트웨이]를 통해 다른 네트워크와 연결 가능하기 때문)
  • IP주소로 MAC 주소를 알아내기 위해 ARP 프로토콜(IP주소를 MAC주소로 바꿔주는 주소해석 프로토콜) 사용

 

  • TCP는 연결지향형 프로토콜이기 때문에 송신측과 수신측이 서로 연결되는 작업 필요함(3 Way Handshaking)
  • 3 Way Handshaking는 SYN과 ACK 플래그 사용됨
  • 클라이언트는 서버에게 접속을 요청하는 SYN 패킷 보냄
  • 서버는 SYN 요청을 받고, 클라이언트에게 요청을 수락하는 ACK와 SYN 플래그가 설정된 패킷을 보냄
  • 클라이언트는 서버에게 다시 ACK 보냄
  • 여기부터 연결이 이루어지고 데이터가 오가게 됨
  • 3 Way Handshaking으로 연결이 되었기 때문에 데이터를 보낼차례

 

  • 사용 중인 컴퓨터는 Private IP 사용 중
  • Private IP는 외부의 네트워크 환경에서 IP주소를 찾지 못함
  • 그래서 공유기를 통해 나갈때 public ip 주소로 변환하여 나가는 작업 필요: NAT(Network Address Translation)
  • 개인 공유기를 거치고 구글 서버에 도착하기 위해 여러 라우터를 거쳐야 함

 

  • 라우터는 네트워크와 네트워크를 연결해주는 역할을 함
  • 라우터가 목적지 경로를 찾아 나가는 과정: 라우팅
  • 라우팅을 거쳐 구글 서버가 연결된 라우터까지 데이터가 도착하면 패킷의 IP헤더에 기록된 구글 서버 IP주소를 통해 MAC 주소를 가져와야함, 이때 ARP 프로토콜 사용
  • ARP는 라우터가 연결된 네트워크에 브로드캐스팅 됨

 

  • 목적지 구글서버가 자신의 IP로 온 ARP 요청을 받고 MAC주소 응답해줌: 목적지 구글서버의 MAC주소 알게됨 -> 데이터가 물리적으로 전달될 수 있음(ARP로 IP주소를 통해 MAC 주소를 얻고, 목적지 구글서버에 데이터 도착) 
  • Internet Layer의 Ip 주소와 Network Access Layer의 MAC 주소를 사용해 올바른 목적지에 도착

 

  • Transport Layer의 목적지 포트번호는 80번
  • 80번 포트를 사용 중인 애플리케이션에게 데이터를 전달해줘야함
  • Application Layer 까지가면 웹 서버가 사용될 HTTP Request 데이터를 얻게됨

 

  • 이제 서버에서 정상적으로 HTTP Request를 받고 응답을 돌려보내줌
  • /(슬래쉬)에 매핑된 GET요청을 처리해 적절한 HTML 응답해줌

 

  • HTTP 요청과 응답과정이 끝나면 연결 종료해야함
  • 여기서 TCP 컨드롤 비트(URG, ACK, PSH, RST, SYN, FIN)사용됨
  • 그 중 ACK, FIN 플래그 사용

 

4-Way- Handshaking

1단계: 클라이언트가 서버로 연결을 종료하겠다는 FIN 플래그 전송

2단계: 서버는 클라이언트에게 ACK 메시지 보냄 -> 자신의 통신이 끝날 때까지 기다림

3단계: 서버가 통신이 끝나면 클라이언트로 FIN 보냄

4단계: 클라이언트는 확인했다는 의미로 서버에게 ACK를 보냄 -> 연결 종료

 

TIME-WAT(소켓을 닫지 않고 잉여패킷을 기다리는 과정)

  • 서버가 FIN을 보내는 과정에서 문제 발생
  • 서버가 FIN을 보내기 전에 보냈던 데이터가 FIN보다 늦게 도착할 경우
  • 서버로부터 FIN을 수신했다고 클라이언트가 바로 연결된 소켓을 닫아버리면 FIN을 보내기 전에 보낸 패킷은 클라이언트가 받을 수 없게됨
  • 따라서 클라이언트는 서버로부터 FIN 요청을 받더라도 일정시간동안 소켓을 닫지 않고 혹시나 아직 도착하지 않은 잉여 패킷을 기다림

TCP/IP 4계층과 OSI 7계층 비교

TCP/IP 4계층 OSI 7계층  Protocol
Application Layer Application Layer FRP, HTTP, Telnet
Prsentaion Layer JEPG, MPEG
Session Layer NFS, SQL, PAP
Transport Layer Transport Layer TCP, UDP
Internet Layer Network Layer IPv4, IPv6
Network Access Layer Data Link Layer ARP, CDP, STP
Physical Layer Ethernet, Wi-Fi

OSI 7계층

7계층 - Application Layer 응용 계층

  • 사용자와 직접적으로 상호작용하며 눈에 보이는 부분
  • 크롬, 사파리 등 웹 브라우저와 MS Office 등 응용 프로그램이 대표적
User Interface를 제공하는 계층

 

6계층 - Presentation Layer 표현 계층

  • 응용 계층의 데이터 표현에서 독립적인 부분
  • 응용 프로그램이나 네트워크를 위해 데이터를 "표현"
    암호화, 복호화, 코드 변환 등을 수행
데이터의 변환 작업을 하는 계층

 

5계층 - Session Layer 세션 계층

  • 사용자와 서버 간에 "대화"가 필요하면 세션을 만드는 작업을 처리
  • 시스템의 응답 대기 시간, 응용 프로그램간의 종료 등
응용 프로그램 간의 연결을 지원하는 계층

 

4계층 - Transport Layer 전송 계층

  • 최종 시스템 및 호스트 간의 데이터 전송 조율을 담당
  • 보낼 데이터의 용량, 속도, 목적지 등을 처리
    TCP / UDP
서비스를 구분하고 데이터의 전송 방식을 담당하는 계층 (TCP / UDP)

 

3계층 - Network Layer 네트워크 계층

  • 네크워크의 라우터 기능이 있어 컴퓨터나 서버끼리의 연결에서 라우터가 이 작업을 효율적으로 처리
  • 라우터, Packet
네트워크를 논리적으로 구분하고 연결하는 계층 - 논리적 주소 사용

 

2계층 - Data Link Layer 데이터 링크 계층

  • 노드 간 데이터 전송을 제공하며 물리 계층의 오류 수정도 처리
  • 물리적인 연결을 통하여 인접한 두 장치간의 신뢰성 있는 정보 전송을 담당
  • 전송 단위: frame
물리적 매체에 패킷 데이터를 실어 보내는 계층 - 환경에 맞는 다양한 통신 프로토콜 지원

 

1계층 - Physical Layer 물리 계층

  • 시스템의 전기적, 물리적 표현을 나냄
  • 단지 데이터 전달 역할만을 하고, 알고리즘이나 오류 제어 기능은 존재하지 않음
    허브, 케이블, 라우터, 전원 스위치
신호로 변환하여 전송하는 계층

TCP / IP 4계층

4계층 - Application Layer

  • OSI 7계층에서 A-P-S(Application L, Presentation L, Session L)에 해당하고(5,6,7 계층)
  • 응용 프로그램들이 네트워크, 웹 서비스, 메일 서비스 등을 가능하게 하는 표준적인 인터페이스를 제공
TCP/IP 기반의 응용 프로그램을 구분할 때 사용한다.
HTTP, FTP, Telnet, DNS, SMTP

 

3계층 - Transport Layer

  • OSI 7계층에서 전송계층(T.L)에 해당되며 네트워크 양단 호스트 사이에서 신뢰성있는 전송 기능을 제공
  • 정확한 패킷의 전송을 보장하는 TCP와 속도가 빠른 UDP 프로토콜을 이용
통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당
TCP, UDP

 

2계층 - Internet Layer

  • OSI 7계층의 네트워크 계층에 해당함
  • 상위 계층으로부터 받은 데이터의 IP 패킷 헤더를 붙여 IP 패킷을 만들고 이를 전송하는 역할
통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능을 담당
IP, ARP, RARP, ICMP

 

1계층 - Network Access Layer

  • OSI 7계층에서 물리계층과 데이터링크 계층에 해당
  • HDD, SDD, 네트워크 카드 등 하드웨어적인 요소와 관련된 모든 것을 지원하는 계층
CSMA/CD, MAC, LAN, X25, 패킷망, 위성 통신, 다이얼 모뎀 등 전송에 사용
Ethernet(이더넷), Token Ring, PPP

OSI 7계층과 TCP / IP 4계층 비교

  • TCP/IP 4계층은 OSI 모델보다 먼저 개발됨
  • 서로 간의 계층은 정확하게 일치하지는 않음
  • 두 계층을 비교할 때, 세션(Session)과 표현(Presentation) 2개의 계층이 TCP/IP 계층에 없음
  • TCP/IP 4계층은 인터넷이 발전되면서 표준화되어 신뢰성이 우수함
  • OSI 7계층은 표준이지만 실질적 구현 예가 없어 신뢰성이 저하됨
  • OSI 7계층은 장비 개발과 통신 자체를 어떠한 방식으로 표준으로 잡을지에 관련해 사용
  • TCP/IP 4계층은 실질적인 통신 자체에서 많이 사용된다.

 

 

 


참고자료

경험의 연장선, [Network] TCP 연결과정에 대해 알아보자

[CS전공지식면접] www.naver.com을 주소창에 치면 어떻게 될까요?|작성자 큰돌

수제비 정보처리기사 실기 11-35~11-37

JOINC, "네트워크 프로그래밍:TCP/IP개론"

우아한Tech [10분 테코톡] 수리의 TCP/IP

LEO Devlog OSI 7계층 | TCP/IP 4계층 비교

 

 

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

CPU(Central Processing Unit)  (0) 2023.01.04
Router  (0) 2023.01.03
동기(Synchronous) / 비동기(Asynchronous)  (0) 2022.12.30
OSI (Open System Interconnection) 7계층  (1) 2022.12.30
프로토콜(Protocol) / OSI 7계층  (1) 2022.12.29