no image
[면접 대비 기초] 05. IPv4와 IPv6 주소 체계
IPv4 우리가 인터넷 연결 관련한 문제를 접했을 때 IP에 대해 처음 접할 것입니다. 우리가 흔히 봤던 다음과 같은 설정에서 사용되는 IP는 IPv4 버전의 체계가 사용됩니다. IP는 32 비트인 IPv4와 128 비트인 IPv6로 나뉩니다. IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라고 불리는 8비트 단위로 나누고 각 옥텟은 "."으로 구분합니다. 이 때 v4의 IP 주소는 10진법으로 표기되므로 자리마다 0~255 값을 쓸 수 있습니다. 이러한 IPv4는 네트워크 주소와 호스트 주소로 나뉘게 됩니다. 하지만 이 둘을 구분하는 경계점이 고정돼 있지 않은 것이 특징입니다. IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class)라는 개념..
2023.12.04
[면접 대비 CS 기초] 5. DNS
우리가 통신을 진행하기 위해서 IP 주소를 먼저 따라가게 됩니다. 하지만 부여된 IP를 숫자로만 암기하기에는 무리가 있습니다. 접속하고자 하는 사이트에 대한 연관성은 없다시피 하고, IP는 쉽게 변경될 수 있기 때문입니다. 수시로 바뀌는 IP를 매번 외우고 있을 수는 없기 때문에 등장한 체계가 있습니다. DNS(Domain Name System) 이름에서 유츄할 수 있듯 IP에 도메인 이름을 부여해 도메인을 입력하면 해당하는 IP로 이동하게 해주는 기능입니다. 우리가 구글에 접근하기 위해서는 "https://google.com/"이나 "142.250.196.100"를 입력해 접속하게 됩니다. 단순하게 보더라도 무작위 숫자를 암기하기 보다 구글을 뜻하는 도메인을 활용하는 것이 더 수월할 것입니다. 따라서 ..
2023.11.27
no image
[면접 대비 CS 기초] 04. 포트(Port)
이전 포스팅에서 IP 체계를 다룰 때 단점 중 하나는 "하나의 IP를 가지고 있는 서버에서 두 개 이상의 애플리케이션을 다루고 있다면 이를 구분할 수 없다."라고 했습니다. 이를 해결하기 위한 방법이 바로 포트를 이용해 애플리케이션을 구분하는 방법입니다. 이와 같이 TCP 세그먼트에는 출발지 포트와 목적지 포트의 정보가 있어 하나의 IP만을 사용하더라도 애플리케이션을 구분할 수 있습니다. 예를 들면 다음과 같습니다. 서비스 플랫폼 IP로 접근한 후 영상을 이용하기 위해 클릭하면 11000번 포트에서 출발해 10000번 포트로 도착합니다. 이를 통해 영상 시청이 가능합니다. 이러한 원리로 여러 애플리케이션을 한 곳에서 운영할 수 있게 됩니다. 포트 번호 포트 번호는 0~65535까지 값을 가지고 있으며, ..
2023.11.27
no image
[면접 대비 CS 기초] 03. 인터넷 통신을 위한 체계 - TCP/IP, UDP
이전 포스팅에서 OSI 7 계층의 구성 요소와 특징에 대해 살펴봤습니다. 그렇다면 이번에는 이 구조를 통해 어떻게 통신이 이루어지는지 간단하게 살펴보겠습니다. 인터넷 통신 방법 클라이언트가 서버에 A라는 명령을 요청한다고 가정해 봅시다. 그렇다면 다음 그림과 같은 형태를 띨 것입니다. 이렇게 서버와 클라이언트를 이어주는 인터넷 망이 이와 같이 단순하다면 편하겠지만 안타깝게도 저희가 사는 세상은 훨씬 복잡한 인터넷 망 체계를 가지고 있습니다. 그렇다면 이와 같은 상태에서는 어떻게 데이터를 주고 받을 수 있을까요? 1. IP(Internet Protocol) 첫 번째는 전송하고자 하는 데이터에 IP 패킷을 추가해 전달하는 방법입니다. 출발지 IP와 목적지 IP 등 정보를 데이터에 붙여 전달하는 방식입니다. ..
2023.11.24
no image
[면접 대비 CS 기초] 02. OSI 7 계층
OSI 7 계층 OSI 7 계층은 데이터가 네트워크를 통해 이동하는 과정을 7단계로 나누어 쉽게 설명하는 모델입니다. OSI 7 계층 모델은 다음과 같이 구성 돼 있습니다. 복잡하게만 보이는 데이터 전송 과정을 이 모델로 나누어 보면 이해하기 수월해집니다. 그리고 이 모델은 다음과 같이 나뉘기도 합니다. 이런 계층 분류는 계층의 역할과 목표에 따른 것입니다. 데이터 플로 계층은 데이터를 상대에게 잘 전달하는 역할을 가지고 있습니다. 그리고 상위 계층은 사용자나 응용 프로그램과 상호작용하여 데이터를 보내고 받는 역할을 하게 됩니다. 각 계층별 특징 1. 물리(Physical) 계층 물리 계층은 OSI 7계층의 첫 번째 계층으로 물리적 연결과 관련된 정보를 전달합니다. 주로 전기적, 물리적인 특징을 다루며 ..
2023.11.23
[면접 대비 CS 기초] 01. 운영체제(Operating System, OS)
OS Operating System (OS)은 컴퓨터 하드웨어와 소프트웨어 사이의 인터페이스 역할을 하는 핵심 소프트웨어입니다. OS는 컴퓨터의 자원을 효율적으로 관리하고, 사용자가 컴퓨터를 쉽게 사용할 수 있도록 도와줍니다. 즉, 하드웨어와 사용자 간의 중재자 역할을 수행합니다. OS는 스스로 어떠한 기능을 수행하기 보다 다른 응용프로그램이 작업을 원활히 진행할 수 있도록 작업 환경을 마련해줍니다. 즉, 응용프로그램을 운영(Operating)하기 쉽도록 만든 시스템(System)이라고 생각하면 좋을 것 같습니다. 주요 기능 하드웨어 자원 관리: CPU, 메모리, 입출력 장치 등 컴퓨터의 자원을 효율적으로 관리합니다. 프로세스 관리: 여러 개의 프로그램을 동시에 실행할 수 있도록 프로세스를 생성, 관리,..
2023.09.03
반응형

IPv4

우리가 인터넷 연결 관련한 문제를 접했을 때 IP에 대해 처음 접할 것입니다. 우리가 흔히 봤던 다음과 같은 설정에서 사용되는 IP는 IPv4 버전의 체계가 사용됩니다.

 

IP는 32 비트인 IPv4와 128 비트인 IPv6로 나뉩니다. IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라고 불리는 8비트 단위로 나누고 각 옥텟은 "."으로 구분합니다. 이 때 v4의 IP 주소는 10진법으로 표기되므로 자리마다 0~255 값을 쓸 수 있습니다.

 

 

이러한 IPv4는 네트워크 주소와 호스트 주소로 나뉘게 됩니다. 하지만 이 둘을 구분하는 경계점이 고정돼 있지 않은 것이 특징입니다. IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class)라는 개념을 도입하게 됐습니다. 이는 다음 포스팅에서 알아보겠습니다.

  • 네트워크 주소: 호스트들을 모은 네트워크를 지칭하는 주소로 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 합니다.
  • 호스트 주소: 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소입니다.

 

IPv6

IPv6는 32 비트 주소 체계를 갖고 있는 IPv4의 주소 고갈 문제를 해결하기 위해 개발됐습니다. 128 비트 체계인 IPv6는 32 비트 체계의 IPv4보다 약 340경 배나 더 많은 주소를 제공할 수 있게 됐습니다.

 

IPv6의 주소는 16 비트를 16진수로 표현해 8자리로 나타냅니다. 하지만 대부분 0의 숫자를 갖게 되므로, 이를 축약해 '0000'을 '0' 하나로 표현하거나 연속되는 0 그룹을 ':' 만을 남겨 표시하기도 합니다. 때문에 다음 IPv6는 모두 같은 주소를 나타내게 됩니다.

 

 

IPv6는 점점 상용화되고 있지만 간단하게 여기까지 알아보고 IPv4를 집중해서 포스팅하겠습니다.

반응형
반응형

우리가 통신을 진행하기 위해서 IP 주소를 먼저 따라가게 됩니다. 하지만 부여된 IP를 숫자로만 암기하기에는 무리가 있습니다. 접속하고자 하는 사이트에 대한 연관성은 없다시피 하고, IP는 쉽게 변경될 수 있기 때문입니다. 수시로 바뀌는 IP를 매번 외우고 있을 수는 없기 때문에 등장한 체계가 있습니다.

 

DNS(Domain Name System)

이름에서 유츄할 수 있듯 IP에 도메인 이름을 부여해 도메인을 입력하면 해당하는 IP로 이동하게 해주는 기능입니다. 우리가 구글에 접근하기 위해서는 "https://google.com/"이나 "142.250.196.100"를 입력해 접속하게 됩니다. 단순하게 보더라도 무작위 숫자를 암기하기 보다 구글을 뜻하는 도메인을 활용하는 것이 더 수월할 것입니다. 따라서 특별한 경우가 아니라면 대부분 도메인 주소를 사용해 IP 주소로 변환하는 DNS 서버를 사용하고 있는 것입니다.

 

DNS의 체계와 작동원리까지 다루기에 신입 개발자나 엔지니어에게 이정도까지 바라지는 않을 것 같아 나중에 네트워크 파트를 심도 있게 공부할 때 다뤄보도록 하겠습니다.

반응형
반응형

이전 포스팅에서 IP 체계를 다룰 때 단점 중 하나는 "하나의 IP를 가지고 있는 서버에서 두 개 이상의 애플리케이션을 다루고 있다면 이를 구분할 수 없다."라고 했습니다. 이를 해결하기 위한 방법이 바로 포트를 이용해 애플리케이션을 구분하는 방법입니다.

 

이와 같이 TCP 세그먼트에는 출발지 포트와 목적지 포트의 정보가 있어 하나의 IP만을 사용하더라도 애플리케이션을 구분할 수 있습니다. 예를 들면 다음과 같습니다.

 

 

서비스 플랫폼 IP로 접근한 후 영상을 이용하기 위해 클릭하면 11000번 포트에서 출발해 10000번 포트로 도착합니다. 이를 통해 영상 시청이 가능합니다. 이러한 원리로 여러 애플리케이션을 한 곳에서 운영할 수 있게 됩니다.

 

 

포트 번호

포트 번호는 0~65535까지 값을 가지고 있으며, 구성은 크게 다음과 같습니다.

  • 0~1023: Well-known port
  • 1024~40151: Registered port
  • 40152~65535: Dynamic port

Well-known port는 직역하면 잘 알려진 포트를 뜻합니다. 일반적으로 잘 알려진 80번(HTTP), 443번(HTTPS)와 같은 포트를 뜻합니다. Registered port는 Well-known port처럼 많이 사용되지는 않지만 특정 소프트웨어나 애플리케이션이 필요로 할 때 사용되는 포트입니다. 나머지는 일반적으로 자주 사용되지 않기 때문에 임시로 사용하는 용도로 쓰이기도 합니다.

 

이렇게 구분하는 포트가 겹치게 되면 어느 서비스 포트로 데이터를 보내야할지 명확하지 않아 데이터 손실이 발생하기 때문입니다. IP도 마찬가지로 동일한 IP값이 할당되면 주소 충돌이 발생해 패킷이 올바르게 라우팅 되지 않습니다. 때문에 잘 알려진 포트인 0~1023번까지는 사용하지 않는 것이 좋습니다.

 

그렇다면 잘알려진 포트 중 우리가 알아둬야 할 중요한 포트들은 무엇이 있을까요?

굳이 다 암기할 필요는 없지만 알아두면 좋을 포트들을 정리했습니다. 앞으로 개발이나 클라우드 업계에서 공부하다 보면 자주 접하실 겁니다.

포트 번호
TCP
UDP
설명
7
O
O
ECHO 프로토콜
20
O
 
파일 전송 프로토콜 (FTP, File Transfer Protocol) - 데이터 포트
21
O
 
파일 전송 프로토콜 (FTP, File Transfer Protocol) - 제어 포트
22
O
 
시큐어 셀 (SSH, Secure SHell) - ssh, scp, sftp같은 프로토콜 및 포트 포워딩
23
O
 
텔넷 프로토콜(Telnet Protocol) - 암호화되지 않은 텍스트 통신
25
O
 
SMTP (Simple Mail Transfer Protocol) - 이메일 전송에 사용
53
O
O
도메인 네임 시스템 (DNS, Domain Name System)
67
   O
BOOTP(부트스트랩 프로토콜) 서버, DHCP로도 사용
68
 
O
BOOTP(부트스트랩 프로토콜) 클라이언트, DHCP로도 사용
80
O
O
HTTP (HyperText Transfer Protocol) - 웹페이지 전송
110
O
 
POP3(Post Office Protocol version 3) - 전자우편 가져오기에 사용
143
O
 
인터넷 메시지 접속 프로토콜 4 (IMAP4, Internet Message Access Protocol 4) - 이메일 가져오기에 사용
139
O
 
넷바이오스 (NetBIOS, Network Basic Input/Output System)
445
 
O
Microsoft-DS SMB 파일 공유
993
O
 
SSL 위의 IMAP4 (암호화 전송)
995
O
 
SSL 위의 POP3 (암호화 전송)
443
O
 
HTTPS - 보안 소켓 레이어 (SSL, Secure Socket Layer) 위에 HTTP (암호화 전송)

 

더 다양한 포트 목록은 wiki에 잘 정리돼 있으니 확인해 보셔도 좋을 것 같습니다!

반응형
반응형

이전 포스팅에서 OSI 7 계층의 구성 요소와 특징에 대해 살펴봤습니다. 그렇다면 이번에는 이 구조를 통해 어떻게 통신이 이루어지는지 간단하게 살펴보겠습니다.

 

인터넷 통신 방법

클라이언트가 서버에 A라는 명령을 요청한다고 가정해 봅시다. 그렇다면 다음 그림과 같은 형태를 띨 것입니다.

 

 

 

이렇게 서버와 클라이언트를 이어주는 인터넷 망이 이와 같이 단순하다면 편하겠지만 안타깝게도 저희가 사는 세상은 훨씬 복잡한 인터넷 망 체계를 가지고 있습니다.

 

 

그렇다면 이와 같은 상태에서는 어떻게 데이터를 주고 받을 수 있을까요?

 

1. IP(Internet Protocol)

첫 번째는 전송하고자 하는 데이터에 IP 패킷을 추가해 전달하는 방법입니다. 출발지 IP와 목적지 IP 등 정보를 데이터에 붙여 전달하는 방식입니다.

데이터에 IP 패킷을 부착해 전송합니다.
출발지와 목적지 IP를 지정해 명령을 주고 받습니다.

 

 

이와 같은 방법으로 데이터를 주고 받을 수 있게 됐지만 다음과 같은 한계가 있습니다.

 

  1. 비연결성
    직접적으로 연결이 돼있지 않다보니 상대가 패킷을 받을 수 있는 상황인지 구분할 수 없습니다. 때문에 패킷을 받을 대상이 없거나, 서비스 불능 상태라고 하더라도 패킷을 전송하게 됩니다. 

  2. 비신뢰성
    중간에 패킷이 소실되거나, 보낸 패킷의 순서가 바뀌어 전송될 경우 처리에 문제가 발생할 수 있습니다. 또한 한 서버에 애플리케이션이 2개가 동작하고 있다고 가정했을 때, 이를 구분할 방법이 없습니다.

 

2. TCP(Transmission Control Portocol)

IP의 한계를 극복하기 위해 트렌스포트(전송) 계층의 TCP를 사용하게 됐습니다. 우선 TCP/IP의 계층 구조는 다음과 같습니다.

 

TCP/IP와 OSI 모델을 비교한 것. 프로토콜은 더 다양하게 존재하지만 나중에 알아보겠다.

 

 

TCP/IP 모델은 다음과 같이 데이터를 전송하게 됩니다.

 

 

 

TCP의 특징은 다음과 같습니다.

 

2-1. TCP 3-way handshake

TCP는 데이터 전송을 시작하기 전 다음 과정을 통해 두 시스템이 연결이 잘 됐는지 확인하는 작업을 진행합니다.

 

조금 쉽게 설명하자면 다음과 같이 설명할 수 있을 것 같습니다.

  1. SYN 전송: 아 혹시 지금 연결 가능할까요?(SYN)
    - 클라이언트가 서버에 연결을 요청하는 패킷을 보냅니다.
  2. SYN + ACK  전송: 네 요청(SYN) 잘 받았구요. 지금 연결 가능합니다(ACK).
    - 서버가 요청을 잘 받았고, 연결 요청을 수락한다는 신호를 함께 보냅니다.
  3. ACK 전송: 연결됐습니다. 감사합니다.(ACK)
    - 클라이언트가 서버의 응답을 받고, 연결이 잘 이루어졌다고 알려줍니다.

 

이 과정을 통해 연결 상태를 확인하고, 데이터를 주고받으며 전달이 잘 되었는지 확인하게 됩니다. 이를 통해 전달받은 데이터가 신뢰성을 갖게 됩니다.

 

2-2 TCP 순서 보장

데이터가 전달되는 과정에서 여러 패킷으로 쪼개 전달하게 됩니다. 이 때 패킷에 순서가 부여됨으로 전송 중 순서가 뒤바뀌더라도 걱정할 필요가 없습니다.

 

 

3. UDP(User Datagram Protocol)

UDP는 TCP는 달리 신뢰성을 보장할만한 기능들이 전혀 없습니다. 데이터 전송은 신뢰성이 바탕이 돼야 하는 것이 핵심입니다. 때문에 UDP는 제한적인 용도로 사용됩니다.

 

음성 데이터나 실시간 스트리밍과 같이 시간에 민감한 프로토콜이나 애플리케이션을 사용하는 경우, 사내 방송아니 증권 시세 데이터 전송에 사용되는 멀티캐스트처럼 단방향으로 다수의 단말과 통신해 응답을 받기 어려운 환경에서 주로 사용됩니다.

 

이와 같은 경우 데이터 신뢰도 보다는 신속성에 민감한 경우입니다. 실시간 스트리밍을 예시로 들면 영상은 초당 30~120회의 정지된 사진이 빠르게 바뀌며 움직이는 듯한 영상처럼 보이는 원리를 이용합니다. 이때에는 패킷이 1~2개 소실된다고 하더라도 우리가 시청하는 데는 큰 영향이 없습니다.

 

하지만 이 수많은 패킷을 하나하나 확인하고 다듬게 되면 버퍼링이 걸리거나 멈칫 거리는 증상이 생길 것입니다. 사람들이 서비스를 평가할 때는 패킷이 1~2개 소실되는 것보다 버퍼링 걸리는 것을 더 안좋은 시선으로 보기 때문에 UDP를 사용하고 있습니다.

반응형
반응형

OSI 7 계층

OSI 7 계층은 데이터가 네트워크를 통해 이동하는 과정을 7단계로 나누어 쉽게 설명하는 모델입니다. OSI 7 계층 모델은 다음과 같이 구성 돼 있습니다.

 

 

 

 

복잡하게만 보이는 데이터 전송 과정을 이 모델로 나누어 보면 이해하기 수월해집니다. 그리고 이 모델은 다음과 같이 나뉘기도 합니다.

 

 

이런 계층 분류는 계층의 역할과 목표에 따른 것입니다. 데이터 플로 계층은 데이터를 상대에게 잘 전달하는 역할을 가지고 있습니다. 그리고 상위 계층은 사용자나 응용 프로그램과 상호작용하여 데이터를 보내고 받는 역할을 하게 됩니다.

 

각 계층별 특징

1. 물리(Physical) 계층

물리 계층은 OSI 7계층의 첫 번째 계층으로 물리적 연결과 관련된 정보를 전달합니다. 주로 전기적, 물리적인 특징을 다루며 Bits를 주고 받습니다. 물리 계층 장비는 들어온 전기 신호를 그대로 잘 전달하는 것을 목적으로 하므로 전기 신호가 장비에 들어오면 이 전기 신호를 재생성해 내보냅니다. 이 장비는 주소의 개념이 없어 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송합니다.

 

주요 장비: 허브(Hub), 리피터(Repeater), 케이블(Cable), 커넥터(Connector) 등

 

 

2. 데이터 링크(Data Link) 계층

데이터 링크는 두 번째 계층 즈로 전기 신호를 모아 정보를 처리합니다. 물리 계층과는 달리 전기 신호를 정확히 전달하기 보다는 주소 정보를 정의하고 통신이 원활히 하는 데 초점이 맞춰져 있습니다. 때문에 출발지와 도착지 주소를 확인하고 자신에게 보낸 것이 맞는지, 또는 자신이 처리해야 하는지에 대해 검사한 후 데이터 처리를 수행합니다.

 

이 계층에서는 전기 신호를 모아 데이터 형태로 처리하므로 데이터에 대한 에러를 탐지하거나 고치는 역할을 수행합니다. 신뢰할 수 있는 현대 물리 계층과 달리 과거에는 신뢰할 수 없는 미디어를 이용해 통신하는 경우도 많았기에 데이터 링크 계층에서 통해 에러를 탐지하고 고치거나 재전송했다고 합니다. 현대 이더넷 기반 네트워크 2계층에서는 에러를 탐지하는 역할만 수행하고 있습니다.

 

주소 체계의 등장은 일대 일 통신에서 일대 다수 통신이 가능해졌다는 뜻이 됩니다. 이 때문에 무작정 데이터를 전송하지 않고, 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업부터 진행합니다. 이를 플로 컨트롤(Flow Control)이라고 부릅니다. 이에 대한 방식은 다음에 자세히 다뤄보겠습니다.

 

이 계층에서는 MAC 주소라는 체계를 사용합니다.

 

주요 장비: 네트워크 인터페이스 카드(Network Interface Card), 스위치(Switch)

 

 

3. 네트워크(Network) 계층

네트워크 계층에서는 데이터 링크 계층에서 물리적 MAC 주소 체계를 사용하는 것처럼 논리적 IP 주소 체계를 사용합니다. MAC 주소가 보통은 고정돼 있는 것에 반해 IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있습니다. IP 주소의 체계는 여기에 정리해 두었습니다.

 

이 계층 장비는 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크로 가려면 어디로 가야 하는지 경로를 지정할 수 있습니다. 네트워크 계층에서 사용하는 장비인 라우터는 IP 주소를 사용해 최적의 경로를 찾아 해당 경로로 패킷을 전송하는 역할을 합니다.

 

주요 장비: 라우터(Router)

 

 

4. 트랜스포트(Transport) 계층

물리 계층에서 네트워크 계층까지 담당하는 역할이 신호와 데이터를 올바른 위치로 보내고 실제 신호를 만들어 보낸다면, 트랜스포트(전송) 계층은 해당 데이터들이 실제로 정상적으로 잘 보냈졌는가를 확인하는 역할을 합니다. 데이터를 패킷으로 나누어 전송하는 패킷 네트워크는 전송 중 패킷이 유실되거나 순서가 바뀌는 경우가 생기기도 합니다. 이 문제를 해결하기 위해 패킷이 유실되거나 순서가 바뀌었을 때 바로 잡아주는 역할을 이 계층이 담당합니다.

 

패킷을 분할할 때 패킷 헤더에는 보내는 순서와 받는 순서를 적어 통신합니다. 따라서 패킷이 유실됐다면 재전송을 요청하고 순서가 바뀌더라도 바로 잡을 수 있습니다. 패킷에 보내는 순서를 명시한 것이 시퀸스 번호(Sequence Number)이고 받는 순서를 나타낸 것이 ACK 번호(Acknowledgement Number)입니다. 이 뿐만 아니라 장치 내의 많은 어플리케이션을 구분할 수 있도록 포트 번호(Port Number)를 사용해 상위 애플리케이션을 구분합니다.

 

트랜스포트 계층의 로드 밸런서는 시퀸스와 ACK 번호를 이용해 부하를 분산하고, 방화벽은 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 수행합니다.

 

주요 장비: 로드 밸런서, 방화벽

 

 

5. 세션(Session) 계층

양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊는 역할을 합니다. 흔히 부르는 '세션'을 관리한다고 하는데, TCP/IP 세션을 만들고 없애며, 에러로 중단된 통신에 대한 에러 복구와 재전송을 수행합니다. 이를 위해 API(Application Programming Interface)를 사용합니다.

 

 

6. 프레젠테이션(Presentation) 계층

표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 데이터 형식을 JEPG나 PDF처럼 정의하고, 애플리케이션 계층에서 받은 데이터를 적절한 형식으로 변환하거나 압축하는 역할을 수행합니다. 데이터의 압축, 암호화, 인코딩, 형식 변환 등의 과정을 처리해 서로 다른 시스템 간에 호환성 있는 데이터를 교환 가능하게 만들어줍니다.

 

 

7. 애플리케이션(Application) 계층

애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행합니다. 여기에는 네트워크 소프트웨어의 UI(User Interface)처럼 사용자가 직접 상호작용하는 소프트웨어나 서비스뿐만 아니라 이메일, 파일 전송, 웹 브라우징 등 응용 프로그램도 포함됩니다. 즉, 사용자의 요청에 따라 데이터를 생성, 조작, 제어하고, 응용 프로그램 간 메시지를 전송하는 역할을 합니다.

반응형
반응형

OS

Operating System (OS)은 컴퓨터 하드웨어와 소프트웨어 사이의 인터페이스 역할을 하는 핵심 소프트웨어입니다. OS는 컴퓨터의 자원을 효율적으로 관리하고, 사용자가 컴퓨터를 쉽게 사용할 수 있도록 도와줍니다. 즉, 하드웨어와 사용자 간의 중재자 역할을 수행합니다.

 

OS는 스스로 어떠한 기능을 수행하기 보다 다른 응용프로그램이 작업을 원활히 진행할 수 있도록 작업 환경을 마련해줍니다. 즉, 응용프로그램을 운영(Operating)하기 쉽도록 만든 시스템(System)이라고 생각하면 좋을 것 같습니다.

 

주요 기능

  • 하드웨어 자원 관리: CPU, 메모리, 입출력 장치 등 컴퓨터의 자원을 효율적으로 관리합니다.
  • 프로세스 관리: 여러 개의 프로그램을 동시에 실행할 수 있도록 프로세스를 생성, 관리, 종료합니다.
  • 메모리 관리: 프로그램이 사용할 메모리를 할당하고, 사용이 끝난 메모리를 회수합니다.
  • 파일 관리: 파일을 생성, 삭제, 수정, 액세스하는 기능을 제공합니다.
  • 장치 드라이버 관리: 하드웨어 장치와 통신할 수 있도록 장치 드라이버를 관리합니다.

 

유형

  • 단일 사용자/단일 작업 OS: 한 번에 한 명의 사용자만 사용하고, 한 번에 하나의 프로그램만 실행할 수 있습니다. 예를 들어, MS-DOS, CP/M 등이 있습니다.
  • 다중 사용자/다중 작업 OS: 여러 명의 사용자가 동시에 사용할 수 있고, 여러 개의 프로그램을 동시에 실행할 수 있습니다. 예를 들어, Windows, macOS, Linux 등이 있습니다.

 

반응형