2. Introduction
1. 개요
- TCP/IP 프로토콜 그룹
-1960년대 후반: 패킷 네트워크 연구 프로젝트
-> 1990년대: 컴퓨터를 연결하는 일반적인 통신 형식
-진정한 개방 시스템(open system)을 가능하게 함_Open Systme Interconnection (OSI) 7 layers
-WAN의 기반을 구성 -> worldwide Internet (Internet)
- TCP/IP 프로토콜 집합의 개요와 기본지식 제공
2. 계층화(Layering)
TCP/IP 프로토콜 집합의 4계층
응용 | Talent, FTP, e-mail 등 |
트랜스포트 | TCP, UDP |
네트워크 | IP, ICMP, IGMP |
링크 | 장치 드라이버와 인터페이스 |
TCP/IP vs OSI 7 Layers
OSI Reference Model | TCP/IP Conceptual Layers |
7. Application | Application |
6. Presentation | |
5. Session | |
4. Transport | <-> Transport |
3. Network | <-> Network |
2. Data Link | <-> Network <-> Interface |
1. Physical |
링크(link)층, 데이터 링크(data link)층, 네트워크 인터페이스(network interface)층
-운영체제의 디바이스 드라이버와 네트워크 인터페이스 카드 포함
-연동되어 있는 케이블의 물리적인 인터페이스와 관련된 하드웨어적인 부분 제어
네트워크(network)층, 인터넷(internet)층
-네트워크 상의 패킷의 이동 제어(패킷 라우팅)
-IP, ICMP, IGMP으로 구성
트랜스포트(transport)층
: 상위 응용 층에 대해 두 호스트 간의 데이터 흐름을 제공
-TCP
두 호스트간의 신뢰성 높은 데이터 흐름을 제공(분할, 패킷 식별, 타임 아웃 설정_재전송 관련 기능)
-UDP
아주 단순한 서비스를 응용 층에 제공
응용(application)층
-특정 응용에 대한 상세한 동작을 처리
-공통 응용
HTTP
Telnet
FTP(File Transfer Protocol)
SMTP(Simple Mail Transfer Protocol)
SNMP(Simple Network Management Protocol)
3. TCP/IP 계층화
LAN상의 두 호스트가 FTP를 실행하는 경우의 예
인터넷을 구성하는 가장 쉬운 방법
-라우터 ~> 둘 OR 그 이상의 네트워크 연결
-멀티 홈드 시스템
: 복수의 인터페이스를 갖는 시스템
호스트가 라우터 기능을 수행하도록 특별하게 구성 가능
상황에 따라 호스트 OR 라우터라고 부름
e.g., 유무선 공유기
-인터넷이 강력하고 편리한 이유
응용으로부터 네트워크 접속에 따른 물리적인 부분이 감추어져 있기 때문
브리지
네트워크를 연결하는 또 다른 방법으로 링크층 접속
TCP와 UDP
-TCP 응용
HTTP
Telnet과 Rlogin
FTP
SMTP
-UDP 응용
DNS
TFTP(Tricial File Transfer Protocol)
Bootstrap Protocol
SNMP(Simple Network Management Protocol)
QUIC(Quick UDP Internet Connections)
IP
-ICMP(Internet Control Message Protocol)
: IP층을 이용해서 에러메시지 교환과 다른 중요한 정보를 다른 호스트나 라우터의 IP층과 교환
응용층에서 직접 액세스
PING, Traceroute
-IGMP(Internet Group Management Protocol)
: 복수의 호스트에 UDP 데이터 그램을 송신하는 멀티캐스팅에 이용되는 프로토콜
ARP와 RARP
: IP주소와 MAC 주소 간의 변환에 사용
4. 인터넷 주소(Addressing)
인터넷 상의 모든 인터페이스는 고유의 인터넷 주소(Internet address, IP주소)를 갖는다
네트워크의 IP주소 관리 조직
-InterNIC(Internet Network Information Center)
등록 서비스, 디렉토리와 데이터 베이스 서비스, 정보 서비스
-KRNIC
국내의 IP주소와 도메인 이름 할당
IP주소의 유형
유니캐스트(Unicast, 단일 호스트)
브로드캐스트(broadcast, 특정 네트워크상의 모든 호스트)_Host ID가 0s 또는 1s일때?
멀티캐스트(multicast, 멀티캐스트 그룹에 속하는 호스트)
5. DNS(Domain Name System)
: IP주소와 호스트 이름간의 대응관계 정보를 제공하는 분산 데이터 베이스
IP 주소 <-> 호스트 명
상호 간의 검색 가능
6. 캡슐화(Encapsulation)
TCP를 이용한 데이터 전
: 데이터의 전송 시 각 계층은 데이터가 목적지에 전달되도록 수신된 데이터에 각종 헤더(header)와 데이터 트레일러(trailer)정보를 추가
TCP 세그먼트(segment)
: TCP가 IP에 전송하는 데이터 단위
IP 데이터그램(datagram)
: IP가 네트워크 인터페이스로 전송하는 데이터 단위
프레임(frame)
: 이더넷 네트워크 ~> 전달되는 비트 스트림
이더넷 프레임의 물리적 특성에 따른 데이터의 크기: 46 ~ 1500바이트
UDP를 이용한 데이터 전송
-UDP가 IP로 전송하는 정보 단위는 UDP 데이터 그램
UDP 헤더의 크기: 8바이트
IP의 식별자 유형(8비트)
TCP | 6 | ICMP | 1 |
UDP | 17 | IGMP | 2 |
TCP와 UDP의 16비트 포트번호(port number)
: 헤더에 응용을 식별하기 위한 발신지 포트 번호와 목적지 포트 번호를 저장
이더넷 헤더의 16-비트 프레임 타입(type)필드
: 네트워크층 프로토콜이 데이터를 생성한 것을 식별
7. 역다중화(Demultiplexing)
: 이더넷 프레임이 목적지 호스트에 수신
-> 프로토콜 스택을 올라가면서 헤더의 식별자를 보고 데이터를 전송할 다음 상위 층을 결정하는 과정
8. 클라이언트-서버 모델
응용의 목적
: 클라이언트에 대해 서버가 어떤 정의된 서비스를 제공하는 것
-반복 서버(iterative server): TCP 서버
1. 클라이언트로부터 요구가 오기 기다리기
2. 클라이언트의 요구 처리
3. 요구 송신한 클라이언트에게 응답 보내기
4. 단계1로 돌아가기_단계2 처리과정에서 다른 클라이언트에게 서비스 제공하지 X
-병렬 서버(concurrent server): UDP 서버
1. 클라이언트로부터 요구가 오기를 기다리기
2. 클라이언트의 요구 처리하기 위한 새로운 서버 시작. 처리 마치면 이 새로운 서버 종료
3. 단계1로 돌아가기
병렬 서버의 이점
: 클라이언트의 요구 처리하기 위해 새로운 별도의 서버를 가동하여 복수의 클라이언트가 동시에 서비스 받을 수 있음
9. 포트 번호(Port Number)
: TCP와 UDP가 응용을 식별하기 위해서 16비트 포트 번호를 이용
각 서비스 별 포트번호
-IANA(Internet Assigned Numbers Authoritiy)에 의해 1 ~ 1023까지의 포트번호 관리
FTP | 21 |
TFTP | 69 |
Telnet | 23 |
Rlogin | 513 |
클라이언트 포트번호(ephemeral 포트)
: 하나의 클라이언트는 사용자가 서비스를 필요로 하는 동안만 존재
-1,024 ~ 5,000까지 포트 번호 할당
UNIX 시스템에서의 포트번호
- /etc/services 파일에 들어 있다
10. 표준화 작업과정
-Telnet 서버와 DNS에 대한 포트 번호 알아내기
-예약된 포트
: 슈퍼 유저 권한을 가진 프로세스에 의해 할당할 수 있는 1 ~ 1023 사이의 포트 번호
TCP/IP 프로토콜을 관리하고, 새로운 표준안을 승인하는 등의 일을 하는 인터넷 그룹
1. ISOC(Internet Society)
인터넷 발전과 성장을 촉진하는 전문적인 단체
2. IAB(Internet Architecture Board)
기술면에 대한 관리, 조정하는 조직
인터넷 표준안에 대한 책임을 맡고 있다
3. IETF(Internet Engineering Task Force)
단기적인 표준정책그룹(응용, 라우팅, 주소지정, 정보보호 등의 9개 이상의 영역으로 나뉨)
인터넷 표준에 대한 규격 개발
4. IRTF(Internet Research Task Force)
장기적인 연구프로젝트 추진
11. RFC(Request for Comment)
: 인터넷에 대한 모든 공식적인 표준안에 대한 문서 양식으로 고유 번호가 부여
FTP와 전자 메일 ~> RFC의 자료 입수
RFC 자료를 입수하는 방법에 대한 자세한 자료 보내준다
RFC에 대한 중요한 사항
1. 할당된 번호 RFC(Assigned Numbers RFC)
: 인터넷 프로토콜에서 사용하고 있는 모든 매직 넘버(magic numbert)나 정수 등이 정의
2. IAB의 공식 프로토콜 표준은 현재 RFC 1600[Postel 1996]까지 되어 있다
-표준화 상태
: 표준안(standard), 표준 초안(draft standard), 실험중(experimental), 참고(recommended), 또는 역사적(historic)
요구레벨
: 요구, 권고, 후보(elective), 제한 사용(limited use), 또는 비권고(not recommended) 등
3. 호스트 요구사항 RFC
-RFC 1122: 링크 층, 네트워크 층, 트랜스포트 층을 대상
-RFC 1123: 응용 층을 대상
-프로토콜의 기능구현과 세부 사항에 대한 구분 필수
: 필수(must), 의무(should), 가능(may), 불가능(should), 절대불가(must not)
4. 라우터의 요구사항 RFC: RFC 1009
12. 표준적인 단순 서비스
13. 인터넷(Internet)
소문자로 된 인터넷
공통 프로토콜을 그룹을 사용하는 복수의 네트워크를 접속한 것을 의미
대문자로 된 인터넷
-TCP/IP를 사용하여 전세계의 호스트와 상호 통신이 가능한 대규모 네트워크
-대문자로 된 인터넷은 소문자로 된 인터넷도 되지만, 그 역은 성립 X
14. 구현
TCP/IP의 사실상 표준은 캘리포니아 대학의 컴퓨터 시스템 연구그룹이 제공한 거
(CSRG, Computer Systems Research Group)
4.x BSD 계열과 BSD 네트워킹 릴리즈로 배포
다른 많은 구현에 대한 출발점
https://joone.net/2018/01/14/11-bsd-유닉스-4화-csrgcomputer-science-research-group-결성/
중요한 기능을 가진 다양한 BSD 릴리즈
15. 응용 프로그램 인터페이스(API)
소켓(socket)
-버클리 소켓(Berkeley sockets)이라고도 함
UNIX, Windows
TLI(Transport Layer Interface)
-XTI(X/Open Transport Interface)라고 부르기도 함
-AT&T
16. 시험네트워크
17. 요약
- TCP/IP 프로토콜 집합
- 인터넷 : 네트워크의 집합으로 라우터 ~> 네트워크 접속
- DNS : 호스트 명과 IP 주소간의 대응관계 제공
- 포트번호 : 응용을 식별하는 데 사용
- 표준화 과정과 RFC
- TCP/IP의 구현과 API
'Computer Science > 네트워크' 카테고리의 다른 글
[TCP/IP Networks] 7. TCP: Transmission Control Protocol (0) | 2022.10.01 |
---|---|
[TCP/IP Networks] 6. UDP: User Datagram Protocol (0) | 2022.10.01 |
[TCP/IP Networks] 5. Address Resolution Protocol, ARP (1) | 2022.10.01 |
[TCP/IP Networks] 4. Internet Protocol (0) | 2022.09.24 |
[TCP/IP Networks] 3. Link Layer (0) | 2022.09.22 |