충분히 쌓여가는
TCP/IP 본문
인터넷
- 전 세계에 걸쳐 파일 전송 등의 데이터 통신 서비스를 받을 수 있는 컴퓨터 네트워크의 시스템
- 실생활에서 인터넷에 가입하고 사용함
- 사업자가 만들어 놓은 네트워크 인프라를 사용하는 것
- 인프라를 통해 데이터 -> 디지털 신호로 전달, 받은 디지털 신호 -> 데이터 전달: 네트워크 통신
- 네트워크 통신을 위해 미리 정해 놓은 공통된 메뉴얼: 프로토콜
- TCP/IP: 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 집합
TCP를 알기 전에 OSI 7계층 중 전송계층에 대해 알아보고자 함
전송계층(Transport Layer)
- 상위 계층들이 데이터의 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층
- 순차 번호 기반의 오류 제어 방식을 사용
- 종단 간 통신을 다루는 최하위 계층으로 종단 간 신뢰성 있고 효율적인 데이터를 전송
- 전송 계층 프로토콜에 TCP와 UDP
TCP(Transmission Control Protocal)
- 흐름제어소켓
- 전송제어 프로토콜은 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나
- IP와 함께 TCP/IP라는 명칭으로 사용됨
- TCP는 전송계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜
- 신뢰할 수 있는 프로토콜, 연결지향형 프로토콜
- 많은 데이터를 주고 받기 때문에 한 개의 패킷만으로 주고 받기에 무리가 있음
- 따라서 데이터를 잘게 쪼개서 보내고 많은 패킷을 보냄
- 이러한 패킷들은 복잡한 인터넷을 통해 목적지로 이동
- 복잡한 환경에서 데이터들이 유실되지 않거나 올바른 순서대로 도착할 수 있는지에 대한 의문이 생김
- 이러한 것을 신뢰할 수 있는 프토토콜은 TCP가 가능하게 해줌
TCP 특징
특징 | 설명 |
신뢰성 보장 | - 패킷 손실, 중복, 순서 바뀜 등이 없도록 보장 - TCP 하위 계층인 IP 계층의 신뢰성 없는 서비스를 보완하여 신뢰성 제공 |
연결 지향적 특징 | - 같은 전송의 UDP가 비연결성인 것과는 달리 ,TCP는 연결 지향적 - 양단간 애플리케이션/프로세스는 TCP가 제공하는 연결성 회신을 통하여 서로 통신 |
흐름제어 (Flow Control) |
- 흐름 제어 기능을 활용하여 송신(송신 전송률) 및 수신(수신 처리율) 속도를 일치시킴 |
혼잡 제어 (Congestion Control) |
- 네트워크가 혼잡하다고 판단될 때는 혼잡에서 기법을 사용하여 송신율을 감속함 |
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는 그렇지 않다는것이 다른점
전반적인 프로세스 연결 과정
환영소켓: 서버 프로그램은 임의의 컴퓨터에서 수행되고 있는 클라이언트로부터의 초기 접속을 처리하는 특별한 출입문(즉, 특별한 소켓)을 가져야 함
서버 프로세스가 실행 -> 클라이언트 프로세스는 서버로 TCP 연결을 시도 -> 이러한 초기 접속을 출입문을 두드리는 것으로 표현함(이는 클라이언트 프로세스에서 TCP 소켓을 생성함으로써 가능)
클라이언트는 TCP 소켓을 생성할 때 서버에 있는 환영(welcom)소켓의 주소, 즉 서버의 IP 주소와 소켓의 포트 번호 명시
소켓을 생성한 후 서버에게 3-way 핸드세이크를 시도 -> 이상이 없다면, 서버는 이 클라이언트에게 지정된 연결 소켓을 생성(그림과 같이 TCP 연결 설정)
전송 계층에서 일어나는 3-way 핸드세이크를 클라이언트와 서버 프로그램은 전혀 인식하지 못함
TCP 연결과정(3-way 핸드셰이크)
1단계: 연결 요청단계
- 클라이언트 측 TCP는 서버 TCP에게 특별한 TCP 세그먼트를 송신
- 이 특별한 세그먼트는 애플리케이션 계층 데이터를 포함하지 않는다
- 세그먼트 헤더에 SYN 비트라고 불리는 하나의 플래그 비트를 가짐 -> 이러한 특별한 세그먼트: SYN 세그먼트
추가로 클라이언트는 최초의 순서번호(client_isn)을 선택 -> 최초의 TCP SYN 세그먼트의 순서번호 필드에 이 번호를 넣음 - 이 세그먼트는 IP 데이터그램 안에서 캡슐화되고 서버로 송신됨
2단계: 연결 승인단계
- 1단계에서 보낸 데이터그램이 서버 호스트에 도착했을 때, 서버는 데이터 그램에서 TCP SYN 세그먼트를 뽑아냄
- -> 연결에 TCP 버퍼와 변수들을 할당, 클라이언트 TCP로 연결 승인 세그먼트를 송신
- 이 연결 승인 세그먼트는 애플리케이션 데이터를 포함하지 않음
그러나 세그먼트 헤더 안에 3개의 중요한 정보를 포함
- SYN비트는 1로 설정
- TCP 세그먼트 헤더의 확인응답 필드는 client_isn+1로 설정
- 자신의 최초의 순서번호(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 계층
계층 | 설명 |
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개론"
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 |