Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Tags more
Archives
Today
Total
관리 메뉴

개발의변화

TCP/IP 4계층 본문

네트워크

TCP/IP 4계층

refindmySapporo 2023. 4. 4. 13:43
반응형

왼쪽 그림의TCP/IP 계층을 OSI 7계층과 비교하면 

애플리케이션 계층은 세션,표현,응용 계층으로 쪼개지고

인터넷 계층은 네트워크 계층으로

링크 계층은 물리 계층, 데이터 링크 계층으로 쪼개진다

 

 

 

 

 

 

 

 

애플리케이션 계층(Application)

사용자가 직접 사용하면서 체감할 수 있는 서비스를 제공하는 계층

 

애플리케이션 계층 프로토콜

1.FTP(File Transfer Protocol): 장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜

2.SSH(Secure Shell): 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜

3.HTTP(HyperText Transfer Protocol): 데이터 통신의 기초이자 웹 사이트를 이용하는데 쓰는 프로토콜

4.SMTP(Simple Mail Transfer Protocol): 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜

5.DNS(Domain Name Service): 도메인 이름과 IP주소를 매핑해주는 서버

EX)

1.웹 브라우저에 www.naver.com을 입력하면 먼저 Local DNS에게 "www.naver.com"이라는 hostname"에 대한 IP 주소를 질의하여 Local DNS에 없으면 다른 DNS name 서버 정보를 받음(Root DNS 정보 전달 받음)

Root DNS란?

Root DNS (루트 네임서버) 는 인터넷의 도메인 네임 시스템의 루트 존이다. 루트 존의 레코드의 요청에 직접 응답하고 적절한 최상위 도메인에 대해 권한이 있는 네임 서버 목록을 반환함으로써 다른 요청에 응답한다. 전세계에 961개의 루트 DNS가 운영되고 있다.

2.Root DNS 서버에 "www.naver.com" 질의

3.Root DNS 서버로 부터 "com 도메인"을 관리하는 TLD (Top-Level Domain) 이름 서버 정보 전달 받음 (TLD는 .com을 담당하는 도메인 네임 시스템)

4.TLD에 "www.naver.com" 질의

5.TLD에서 "name.com" 관리하는 DNS 정보 전달

6."naver.com" 도메인을 관리하는 DNS 서버에 "www.naver.com" 호스트네임에 대한 IP 주소 질의

7.Local DNS 서버에게 "응! www.naver.com에 대한 IP 주소는 222.122.195.6 응답

8.Local DNS는 www.naver.com에 대한 IP 주소를 캐싱을 하고 IP 주소 정보 전달 

 


전송 계층(Transport)

송신자와 수신자를 연결하는 통신 서비스를 제공하며 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공할 수 있으며 애플리케이션과 인터넷 계층 사의 데이터가 전달될 떄 중계 역할을 한다

 

계층프로토콜 : TCP, UDP

 

1.TCP(Transmission Control Protocol)

    인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

가상회선 패킷 교환 방식: 각 패킷에는 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 '순서대로' 도착하는 방식

1. 연결 지향 방식

 

3-way-handshaking으로 연결을 하고(연결 성립 과정)

SYN(synchronize sequence numbers) - 연결 확인을 보내는 무작위의 숫자 값 
ACK(acknowledgements) - Client 혹은 Server로부터 받은 SYN에 1을 더해 SYN을 잘 받았다는 확인의 값

 

3-way-handshaiing 과정

1. SYN 단계: 클라이언트는 서버에 클라이언트의 ISN(Initian sequence number)를 담아 SYN을 보낸다

2.SYN+ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보낸다

3.ACK 단계: 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK을 서버에 보낸다

 

 

4-way-handshaking을 통해 연결을 종료한다(연결 해제 과정)

4-way-handshaking과정

1. FIN 단계: 클라이언트가 연결을 닫을려고 할 때 FIN(연결 해제. 세션 연결을 종료시킬 때 사용되며, 더 이상 전송할 데이터가 없음을 의미한다)으로 설정된 세그먼트를 서버에 보낸다. 그리고 클라이언트는 FIN_WAIT_1 상태로 돌아가고 서버의 응답을 기다린다

FIN-WAIT-1 자신이 보낸 FIN에 대한 ACK를 기다리거나 상대방의 FIN을 기다린다.
FIN-WAIT-2 자신이 보낸 FIN에 대한 ACK를 받았고, 상대방의 FIN을 기다린다.

2.ACK 단계: 서버는 클라이언트로 ACK라는 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어감

 

3.FIN 단계: 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다

4.ACK 단계: 클라이언트는 TIME_WAIT상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 된다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제된다

 

*TIME_WAIT : 지연 패킷이 발생할 경우를 대비하기 위함-> 패킷이 뒤늦게 도달하고 이를 처리하지 않는다면 데이터 무결성 문제

                         두 장치가 연결이 닫혔는지 확인하기 위해서-> 서버 LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때                           장치는 줄곧 LAST_ACK로 되어 있기 떄문에 접속 오류가 나타나기 때문에

데이터 무결성: 데이터의 정확성과 일관성을 유지하고 보증하는 것

 

2. 신뢰성을 보장

  • TCP는 자신이 보낸 Data에 대해 상대방이 받았다는 응답 packet을 받아야 한다. 그렇지 않으면, packet이 유실되었다고 판단하고 다시 보냄.
  • TCP는 Header의 Checksum을 이용해 오류를 확인하는데, Data가 잘 보내 졌다면 ACK Flag를 1으로, 그렇지 않으면 0으로 보낸다. 또한 Sequence Number를 이용하여 순서를 보장하기 때문에 신뢰성이 보장된다.

3. 순서를 보장

  • SYN : 현 연결에서 현재까지 송신한 데이터 총 크기(바이트단위)이자 순서번호(Offset). 수신 측에서는 상대방이 지금까지 나에게 보낸 데이터 총량을 알 수 있다. 그리고 SYN번호는 전체 데이터상의 위치번호와 같으므로 데이터 순서를 맞추는데 사용된다.
  • ACK : 현 연결에서 현재까지 누락 없이 수신한 데이터 총 크기(바이트단위)이자 다음 수신을 원하는 SYN번호, 상대방이 누락 없이 받은 데이터 총량을 알 수 있으며, 누락 발생 시 재전송해야 하는 SEQ 번호를 알 수 있다. 재전송은 상대방이 계속(마지막)에 보내오는 ACK 번호와 일치하는 SYN 번호의 데이터를 전송하면 된다.

2. UDP

- 데이터그램 패킷 교환 방식

   패킷이 독립적으로 이동하며 최적의 경로를 선택 -> 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으면 '순서가       다를 수' 있는 방식

 - 비연결형 프로토콜

   할당되는 논리적인 경로가 없고 각각의 패킷이 다른 경로로 전송되고 이 각각의 패킷은 독립적인 관계를 지님    .

 - 연결을 설정하고 해제하는 과정이 존재하지 않는다

     서로 다른 경로로 독립적으로 처리함에도 패킷에 순서를 부여하여 재조립하거나 흐름제어 및 혼잡제어를 수행하지 않아 속도가 빠르며          네트워크 부하가 적다는 장점이 있지만 데이터 전송의 신뢰성이 낮다. 연속성이 중요한 서비스

 

 


인터넷 계층

장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층

 

계층 프로토콜

IP(Internet Protocol):

  • 지정한 IP 주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달

ARP(Address Resolution Protocol):

IP 네트워크 상에서 IP 주소를 MAC 주소(물리 주소)로 변환하는 프로토콜

 

RARP(Reverse Address Resolution Protocol): IP 호스트가 자신의 물리 네트워크 주소(MAC)는 알지만 IP 주소를 모르는 경우 서버에 IP 주소를 요청하기 위해 사용하는 프로토콜

 

ICMP(Internet Control Message Protocol):IP의 동작 과정에서의 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송하는 목적으로 사용하는 프로토콜 -> 메시지 형식, ping 유틸리티 구현

 

IGMP(Internet Group Management Protocol): 인터넷 그룹 관리 프로토콜은  호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용한느 통신 프로토콜

 

라우팅 프로토콜: 내부 ->RIP, OSPF , 외부 -> EGP, BGP

 


링크 계층

전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 '규칙'을 정하는 계층

물리계층, 데이터링크 계층으로 나누기도 함

물리 계층: 무선 LAN,유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층

데이터 링크 계층: '이더넷 프레임'을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층을 말함

 

 

유선 LAN(IEEE802.3)

 

전이중화 통신(full duplex)

양쪽 장치가 동시에 송수신할 수 있는 방식.이는 송신로와 수신로로 나눠서 데이터를 주고받으며 현대의 고속 이더넷은 이 방식을 기반으로 통신

 

CSMA/CD

이전에는 유선 LAN에 '반이중화 통신' CSMA(Carrier Sense Multiple Access with COllision Detection)방식 사용

데이터를 '보낸 이후' 충돌이 발생하면 일정 시간 이후 재전송하는 방식

 

유선 LAN을 이루는 케이블

트위스트 페어 케이블 : 하나의 케이블처럼 보이지만 실제로는 여덟개의 구리선을 두 개씩 꼬아서 묶은 케이블(LAN 케이블이라고 함)

광섬유 케이블: 광섬유로 만든 케이블 ->  구리선과는 비교할 수 없을 만큼의 장거리 및 고속 통신이 가능함

 

무선LAN(IEEE802.11)

 

반이중화 통신(half duplex)

양쪽 장치는 서로 통신할 수 있지만, 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식

장치가 신호를 수신하기 시작하면 응답하기 전에 전송이 완료될 때까지 기다려야 함

 

CSMA/CA 

반이중화 통신 중 하나로 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식 사용

1. 데이터 송신하기 전 무선 매체 확인

2. 캐리어 감지: 회선이 비어있는지 판단

3. IFS: 랜덤 값을 기반으로 정해진 시간만큼 기다리며, 만약 무선 매체가 사용 중이면 점차 그 간격을 늘려가며 기다림

4. 이후에 데이터 송신

 

무선 LAN을 이루는 주파수

무선 LAN(WLAN: Wireless Local Area Network)은 무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술

와이파이 (wifi): 전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술, 무선 접속 장치(AP)가 있어야함

BSS(Basic Service Set): 기본 서비스 집합을 읨, 단순 공유기를 통해 네트워크에 접속하는 것이 아닌 동일 BSS내에 있는 AP들과 장치들이 서로 통신이 가능한 구조

ESS(Extended Service Set0: 하나 이상의 연결된 BSS그룹, 장거리 무선 통신을 제공하며 BSS보다 더 많은 가용성과 이동성 지원


계층 간 데이터 송수신 과정

 

애플리케이션 계층에서 전송 계층으로 보내는 요청 값들이 캡슐화 과정을 거쳐 전달되고, 다시 링크 계층을 통해 해당 서버와 통신을 하고, 해당 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송

 

캡슐화 과정

캡슐화 과정은 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포하ㅁ시키고 해당 계층의 헤더를 삽입한느 과정을 말함

-> 애플리케이션 계층의 데이터가 전송 계층으로 전달되면서 '세그먼트' 또는 '데이터그램'화가 되며 TCP 헤더가 붙여지고 그 이후 인터넷 계층에서 IP(L3)헤더가 붙여지며 '패킷'화가 되고, 이후 링크 계층으로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 '프레임'화가 된다

 

비캡슐화 과정

비캡슐화 과정은 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정

 


PDU

네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 떄 한 덩어리의 단위를 PDU(Protocol Data Unit)라고 함

제어 관련 정보들이 포함된 '헤더', 데이터를 의맣는 '페이로드'로 구성되어 있음

  • 애플리케이션 계층: 메시지
  • 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
  • 인터넷 계층: 패킷
  • 링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)

PDU 중 아래 꼐층인 비트로 송수신하는 것이 모든 PDU 중 가장 빠르고 효율성이 높음

 

 

 

 

 

 

 

 

 

반응형

'네트워크' 카테고리의 다른 글

2. IP(Internet Protocol)  (0) 2023.04.03
1. 인터넷 구성의 개념  (0) 2023.04.03
URI,URL,URN 그리고 HTTP  (0) 2023.03.24
IP,TCP,UDP 프로토콜  (0) 2023.03.20