본문 바로가기
프로그래밍/TCP IP

[TCP/IP] 인터넷과 리눅스 운영체제

by HI_Ai 2023. 12. 5.
반응형

1. 인터넷이란

 - TCP/IP 프로토콜 사용하는 전세계의 네트워크와 컴퓨터를 서로 연결할 수 있도록 IP 패킷을 교환하는 수많은 라우터가 연결된 패킷 교환망.

ex) 컴퓨터, 인터넷TV, 인터넷 전화기 등의 단말도 연결)

 - 교환망의 핵심 장치 : 라우터(수신된 IP 패킷을 목적지 단말까지 전달하기 위해 IP 패킷 헤더 부착된 목적지 IP 주소를 라우팅 테이블에서 찾아 목적지에 가까운 이웃 라우터 or 최종 단말로 IP 패킷 중계

 

2. 인터넷 구성요소

 - 단말 : 단말 내장된 TCP/IP 프로토콜, 이더넷, 무선 LAN 카드 이용 메시지 송수신

 - 인터넷 서비스 제공 사업자망 : 가입자에게 인터넷 연결 서비스 제공하는 사업자가 제공하는 망

 - 회선 교환 백몬망 : 라우터 물리적으로 연결하는 전용 장거리 회선망

출처 : 리눅스 기반의 TCP/IP와 라우팅 프로토콜9

3. 패킷 

 - 컴퓨터에서 메시지 또는 파일과 같은 긴 정보를 적당한 길이로 분할, 분할된 각각에 대하여 수신측 주소 정보 등의 헤더를 부착한 일종의 전송 단위(TCP/IP가 패킷 단위로 전송하는 방식)

 - 패킷망을 경유하여 송신측에서 최종 수신 장치까지 전달

 - 패킷 교환기의 수신 버퍼 부족 및 전송 과정에서의 외부 잡음에 의한 패킷 오류 감지시 폐기, 여러개의 입력 포트에 비해 적은 수의 출력 포트를 가지므로 일시적으로 많은 패킷 유입시 교환기 내 버퍼에서 머무르는 시간 일시적 증가, 지연중계되어 전달 지연 시간 가변적인 특징

-> TCP : 전달 서비스 기능부가 전송 과정에서 손실 발생시 재전송 등의 신뢰성 있는 전달 서비스 수행(연결형 전달 서비스)

-> UDP : 연결 설정 과정 없이 응용 계층이 매 패킷마다 직접 목적지 지정, 하부 다른 전달 서비스 기능부 전송(비연결형 전달 서비스)

출처 : 리눅스 기반의 TCP/IP와 라우팅 프로토콜

4. 프로토콜

 - 통신 장치간에 교환되는 약속된 패킷의 형식과 절차 규정

 - 컴퓨터간의 연결이 제대로 설정되기 위해 패킷의 종류(연결 요청, 응답, 연결 거부 등)와 서로 연결하는 절차, 응답 오지 않을 경우 재전송 절차 등에 대한 규정

 

5. TCP/IP의 계층 구조

출처 : 리눅스 기반의 TCP/IP와 라우팅 프로토콜

 - 계층 구조 : 음성, 데이터 는 TCP,UDP로 포장되고 이것은 목적지 주소가 명시된 IP 패킷에 수납되어 유무선 LAN카드를 통해 송신

 1)응용계층 : Telnet, FTP, HTTP, DHCP, DNS, Ping 등의 응용 프로그램, 두 단말의 응용은 클라이언트-서버나 peer-to-peer(P2P) 방식으로 연결

 2) 트랜스포트 계층 : 종단 응용 계층간의 데이터 전달 기능 수행, TCP, UDP 해당

  - TCP : 홈뱅킹 같은 중요한 데이터 오류 없이 전달하는 기능 제공, 연결 지속 시간 긴 응용 서비스 전달용(ex 텔넷), TCP는 연결 설정, 순서 번호 사용, 재전송 기능, 흐름 제어, 혼잡 제어 등 제공(Email, http, ftp 등)

  - UDP : 인터넷 전화 같이 전송 도중 일부 음성 패킷 손실되어도 문제없는 실시간 서비스 사용. DNS 같은 일과성 질의응답 서비스 시 사용.

 3) 네트워크 계층 : 최종 목적지 장치의 주소가 명시된 IP 패킷을 생성, 중계, 처리. IP 패킷을 수신한 라우터는 해당 IP 패킷의 목적지 주소 참조하여 최단 거리 경로상의 다음 라우터로 전달. 이 과정에서 라우터의 버퍼 부족으로 일부 IP패킷 폐기될 수도 있음.

 4) 데이터 링크 계층 : 단말과 연결된 라우터, 서버간 연결을 '링크'라고 함. 링크 계층은 이러한 장비 간에 프레임 단위의 데이터를 송수신. 필요시 전송로상의 오류 감지, 복구(이더넷 같은 네트워크 인터페이스 카드, 디바이스 드라이버)

 5) 물리계층 : 전송 선로와 유무선 모뎀, 디지털 모뎀 등 전송 매체와 변복조 장치 통해 비트 열(bit stream)을 수신 단말에 안전하게 전송하는 기능 수행.

출처 : 리눅스 기반의 TCP/IP와 라우팅 프로토콜

 * 전달과정 (응용 계층 메시지가 라우터로 구성된 인터넷 경유하여 서버에 전달되는 과정)

 - 응용 계층 메시지 TCP 계층 전달 -> TCP 헤더 부착, 하부의 IP 계층으로 전달 -> IP 계층에서 IP주소 명시된 IP헤더 부착, LAN카드에 송신 요구 -> LAN 카드 의해 이더넷 프레임에 수납된 IP 패킷 인접 라우터 전달 -> 수신한 라우터 IP 패킷 헤더 목적지 주소 판독하여 다음 라우터로 패킷 중계 -> 서버는 패킷 수신, 응용 계층 프로세스에 이 메시지 전달.

 

6. 응용 프로세스간 연결방식

 1) 클라이언트 - 서버

   - 서버는 클라이언트로부터 연결을 수동적으로 대기, 클라이언트는 이러한 서버에 능동적으로 연결

 2) P2P

   - 각 컴퓨터가 서버 및 클라이언트 기능 동시 가짐, 다른 컴퓨터로부터의 연결 수동적 대기 및 필요시 능동적 연결

 

7. 포트

 - 여러 개의 서버 프로세스들이 한 시스템에서 동시 운영, 클라이언트 요청 수신 시 어떤 서버 프로세스에 전달되어야 할지 판별 필요

 - 단말은 TCP, UDP 헤더의 목적지 포트 번호 영역에 해당 프로세스 구분하는 포트를 작성

출처 : 리눅스 기반의 TCP/IP와 라우팅 프로토콜

8. Connection & Association

두 응용 프로세스간 연결은 다음과 같은 5가지 요소로 구분됨.

 {protocol, local-address, local-process, remote-address, remote-process}

protocol : TCP, UDP, address : IP주소, process : 포트 번호

socket : {protocol, local-address, localprocess} = half-association

출처 : 리눅스 기반의 TCP/IP와 라우팅 프로토콜

9. 프로세스

 - 프로세스 : 독립적으로 동작 가능한 단위 프로그램(한 시스템에서 워드 문서작업 + 브라우저 웹 서핑 시 워드, 브라우저는 각각 별개의 프로세스)

 - 스케줄러 : CPU 1개인 시스템에서 여러개 프로세스 동시 동작 가능하도록 일정시간마다 순회하며 처리(시분할 방식)

    -> 멀티프로세싱, 멀티태스킹 운영체제 : 시분할 방식 가능한 운영체제 

 - 스레드(thread) : 하나의 프로세스 내 여러 개의 독립적인 프로세스 생성, 병렬적 동작(멀티스레드 동작)

반응형