[ 컴퓨터 네트워크 ]
컴퓨터 네트워크는 각 노드(단말)들이 자원을 공유할 수 있게 하는 디지털 전기 통신망
각 노드는 노드간 연결(OSI Layer 2 데이터 링크 계층)을 사용하여 상호간의 데이터를 교환함
Ethernet, 무선랜(와이파이) 등을 통해 인터넷이라는 거대한 네트워크 망을 이용할 수 있다는 의미
컴퓨터 네트워크의 통신 방식은 초기에는 회선 교환 방식이었으나 통신 하는 상호간의 연결을 위한 전용 회선 또는 채널이 필요하며 통신하는 동안은 연결이 독점적으로 사용되므로 효율적으로 회선을 이용하지 못하는 단점이 있었음
이후 패킷 교환 방식으로 컴퓨터 네트워크 통신이 이루어 짐
▶ Internet
인터넷은 인터넷 프로토콜 스위트(Suites)를 기반으로 하는 컴퓨터 네트워크
인터넷 프로토콜 스위트란 인터넷에서 단말간 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 집합
인터넷 프로토콜 스택은 OSI 7계층과 달리, 4계층 (또는 5계층) 으로 구분
5 응용 계층 DNS, TLS/SSL, FTP, HTTP, IMAP, IRC, SMTP, SSH, 텔넷, 비트토렌트, RTP …
4 전송 계층 TCP, UDP …
3 인터넷 계층 IP (IPv4, IPv6)
( 2.5 ARP ARP, RARP )
1,2 네트워크 인터페이스 계층 Ethernet, Wi-Fi, 토큰링, PPP, 프레임 릴레이, SMDS …
▶ 패킷 교환 방식(Packet-Switching)
TCP/IP 환경에서 데이터는 패킷이라는 단위로 교환됨
패킷 단위로 데이터를 교환하는 방식을 직관적으로 패킷 교환 방식이라고 함
이 패킷을 교환하는 방식에 축적교환방식(Store and Forward)을 사용하는데 송수신 상호간에 직접적인 접속경로(회선 점유)를 만들지 않고 통신 정보를 중간 노드(스위치, 라우터 등) 등의 기억 매체를 활용하여 경유하게 됨
이에 따라 중계 루트가 처음부터 정해지지 않고 구간별로 중계 루트가 변하는 형태로 상대방에게 전송됨
이렇게 패킷 교환 방식으로 전송 대역(BandWidth)를 효율적으로 이용할 수 있게 되었으며 패킷 단위로 데이터의 흐름이 생기고 패킷에 우선 순위를 부여할 수 있음. 인터넷이라는 네트워크는 패킷 교환 방식을 바탕으로 동작
[ TCP / IP ]
IP(인터넷 프로토콜)
지정한 IP 주소에 데이터의 조각들을 패킷(Packet)이라는 통신 단위로 최대한 빨리 목적지로 보내는 역할
조각들의 순서가 뒤바뀌거나 일부가 누락되더라도 크게 상관하지 않고 보내는 데 집중
IP 프로토콜은 패킷의 순서 보장도 할 수 없고 패킷이 중간에 유실되도 이에 대한 방안이 없음
TCP(전송 제어 프로토콜)
패킷 데이터의 전달을 보증하고 보낸 순서대로 받게 해줌
도착한 조각을 점검하여 줄을 세우고 망가졌거나 빠진 조각을 다시 요청하는 식으로 순서를 보증
TCP는 데이터를 상대방에게 확실하게 보내기 위해서 3 way 핸드쉐이킹이라는 방법을 사용
이 방법은 패킷을 보내고 잘 보내졌는지 여부를 상대에게 확인
여기에서 고유의 SYN와 ACK라는 TCP 플래그를 사용
결론적으로는 TCP는 IP의 문제를 보완해주는 녀석
▶ TCP / IP 4계층
1층 Network Layer(OSI 7계층에서 물리 + 데이터링크 계층)
이 계층은 Node-To-Node간의 신뢰성 있는 데이터 전송을 담당하는 계층
OSI 7계층의 물리 계층과 데이터링크 계층의 역할을 바로 이 계층이 담당
알맞은 하드웨어로 데이터가 전달되도록 MAC주소를 핸들링 하는것 뿐 아니라 데이터 패킷을 전기신호로 변환하여 선로를 통하여 전달할 수 있게 준비 해줌
2층 - Internet Layer(OSI 7계층에서 네트워크 계층)
IP를 담당하는 계층. IP를 사용하여 데이터의 원천지(origin)과 목적지(destination)에 관한 정보를 첨부
IP는 복잡한 네트워크 망을 통하여 가장 효율적은 방법으로 데이터의 작은 조각들을 되도록 빨리 보내는 일을 함
따라서 IP는 패킷 전달 여부를 보증하지 않고 경로를 설정하여 어떻게든 빨리 보내도록 함
Protocol | Content |
IP | 비연결의 서비스를 제공, 발신지와 목적지까지의 라우팅 경로를 결정 |
ICMP | IP제어와 메세지 기능을 담당 |
ARP | IP 주소를 이용해 상대방의 MAC주소를 알아오는 프로토콜 |
RARP | MAC주소에 해당하는 IP주소를 알아오는 프로토콜 |
3층 Transport Layer(OSI 7계층에서 전송 계층)
TCP / UDP를 담당하는 계층. TCP는 IP위에서 동작하는 프로토콜로 데이터의 전달을 보증하고 보낸 순서대로 받게 해줌
즉, 순서가 맞지 않거나 중간에 빠진 부분을 점검하여 다시 요청하는 일을 담당
Protocol | Content |
TCP (Transmission Control Protocol) |
연결 지향적 (Connection Oriented) 신뢰적, 흐름제어, 에러지어 (순서번호, ACK번호 사용) ACK 받지 못한 모든 데이터는 재전송 보장된 세그먼트로 전달하기에 신뢰성이 있음 연결을 위한 초기 설정 시간이 걸림 |
UDP (User Datagram Protocol) |
비연결 지향적 (Connectionless Oriented) 비신뢰적, 데이터를 보낸 후에 잘 도착햇는지 검사하는 기능이 없음 빠름 연결을 맺지 않으므로 제어 프레임 전송을 할 필요가 없기에 네트워크 부하를 줄일 수 있음 신뢰성보다는 고속성을 요구하는 멀티미디어 응용등에 일부 사용되고 있음 |
4층 Application Layer(OSI 7계층에서 5, 6, 7 계층)
HTTP / FTP를 담당하는 계층. OSI7 계층의 5계층부터 7계층까지의 기능을 담당
서버나 클라이언트 응용 프로그램이 이 계층에서 동작. 브라우저나 텔넷같은 서비스가 이 계층에 동작
Protocol | Content |
DNS (Domain Name System) |
인터넷에서 사용하는 이름을 해당 IP 주소로 변화해주는 서비스 |
SNMP (Simple Network Management Protocol) |
네트워크 장비를 모니터링하고 제어하는 프로토콜 |
FTP (File Transfer Protocol) |
TCP환경에서 파일 전송 프로토콜 |
TFTP (Trival File Transfer Protocol) |
UDP환경에서 파일 전송 프로토콜 |
HTTP (Hypertext Transfer Protocol) |
웹상에서 정보를 주고받을 수 있는 프로토콜 |
▶ TCP / IP 4계층 동작 순서
- 송신측 클라이언트의 애플리케이션 계층에서 어느 웹 페이지를 보고 싶다라는 HTTP 요청을 지시
- 그 다음에 있는 트랜스포트 계층에서는 애플리케이션 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와 포트 번호(TCP 패킷)를 붙여 네트워크 계층에 전달
- 네트워크 계층에서 데이터에 IP 패킷을 추가해서 링크 계층에 전달
- 링크 계층에서는 수신지 MAC 주소와 이더넷 프레임을 추가
- 이로써 네트워크를 통해 송신할 준비 완료
- 수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달
- 수신측 애플리케이션 계층에 도달하게 되면 클라이언트가 발신했던 HTTP 리퀘스트를 수신할 수 있음
- 현재 OSI 7계층보다는 TCP/IP 4계층이 더 많이 활용되고 있다. OSI 7계층은 이론적인 느낌이라면 TCP/IP 4계층은 이론을 실제로 사용한다는 느낌
네이버 접속 시나리오
- 웹 브라우저에 www.naver.com 입력
- DNS로 네이버 서버 IP주소 할당
- 응용 계층(L4)에서 메세지 데이터 패킹(HTTP 메시지)
- 전송 계층(L3)에서 PORT정보(출발지, 목적지), 전송제어 정보, 순서 정보, 검증 정보 패킹 (TCP)
- 인터넷 계층(L2)에서 IP정보(출발지, 목적지) 패킹
- 네트워크 엑세스(L1) 계층에서 MAC주소 패킹
- 게이트웨이를 통해 인터넷망 접속
- 라우터를 통해 목적지(네이버 서버)를 찾아 연결
- 네이버 서버에 도착하면 패킷을 하나 하나 까면서 목적 포트에 메세지 데이터 전달하여 다시 응답
'CS' 카테고리의 다른 글
토폴로지와 네트워크 분류 (0) | 2023.11.13 |
---|---|
TCP/UDP (1) | 2023.11.11 |
연결리스트와 배열 (0) | 2023.11.10 |
프로그래밍 패러다임(선언형, 함수형, 객체지향, 절차지향) (1) | 2023.11.09 |
MVC, MVP, MVVM (1) | 2023.11.08 |
댓글