시스템 구조 빈출 토픽
1. 네트워크(Network) 기본
OSI 7 layer
국제 표준화 기구(ISO)에서 제정한 개방형 시스템 간의 상호연결(OSI: Open System Interconnection) 모델로 이기종 시스템 간의 네트워크 상호호환을 위해 필요한 표준 아키텍처를 정의한 참조모델로 아래 [그림]은 기능에 따라 어떤 목적을 수행하기 위해서 계층적으로 나누어진 여러 프로토콜들을 조합하여 그 목적을 수행하는 방법입니다. 각 계층별로 표준화함으로써 상/하위 계층 간에 인터페이스를 표준화하여 서로 다른(이기종) 시스템과 상호 연동이 가능합니다.
전송계층 TCP, UDP
전송계층 (Transport Layer)는 프로세스간 신뢰성 있는 데이터 전송(Process-To-Process Communication, Delivery)을 담당하는 계층으로 데이터의 안전한 전송을 보장하는 계층으로 프로세스를 식별하기 위한 논리적인 주소로 Port(16bit) 주소를 사용하는데, Port Number는 엄밀하게 말하면 프로세스를 식별하는 식별자라기보다는 소켓을 식별하기 위한 식별자입니다. 네트워크 프로그램을 위해서는 소켓이라는 라이브러리를 이용하는데 각 소켓별로 포트를 할당하게 됩니다. 즉 하나의 프로그램에는 하나 이상의 소켓을 생성할 수 있고 각 소켓을 식별하는 식별자가 Port 번호입니다.
여기서 사용되는 프로토콜이 TCP(Transmission Control Protoco), UDP(User Datagram Protocol), SCTP(Stream Control Transfer Protocol)입니다.
- TCP(Transmission Control Protocol): 신뢰성 있는 연결지향 프로토콜(스트림 기반 전송)
- UDP(User Datagram Protocol): 비신뢰적인 비연결형 프로토콜(데이터그램 기반 전송)
- SCTP(Stream Control Transfer Protocol): TCP와 UDP의 조합형
23' 24회 기출문제
다음 중 TCP/IP 모델의 트랜스포트 계층 프로토 콜에서 사용하는 포트 번호(Port Number)에 대한 설명으로 가장 적절한 것은?
① 소스 포트 번호는 일반적으로 32비트를 사용한다.
② 포트 번호는 프로세스 간의 전달(process-toprocess delivery)을 위해서 사용된다.
③ TCP에서 사용하는 포트 번호와 UDP에서 사용하는 포트 번호는 중복될 수 없다.
④ 소스 포트 번호는 클라이언트 프로그램에서 주로 사용하는 Well-known 포트 번호와 서버 프로 그램에서 주로 사용하는 동적 포트 번호 등이 있다.
TCP 프로토콜 VS UDP 프로토콜 구조
TCP는 Connection Oriented Portocol, 연결 지향 프로토콜로 물리적으로 연결되어 있는 것처럼 (논리적인) 연결통로를 설정해 통신하는 방식으로 가상의 연결통로(Imaginary Tube)를 가성회선이라고 하고, 논리적인 연결통로를 통해 데이터를 주고받음으로써 데이터의 전송순서를 보장하고, 스트림기반의 전송방식을 사용합니다. 즉, 데이터를 정해진 크기로 전송하는 것이 아니라 임의의 크기로 나누어 연속해서 전송하는 방식입니다.
UDP는 Connectionless Protocol, 비연결형 프로토콜로 논리적인 연결 설정 과정이 없기 때문에 데이터그램(datagram) 전송 시마다 주소 정보를 설정해서 전송하는데, 데이터의 순차적 전송을 보장해주지 않으며, 데이터를 정해진 크기로 전송하는 방식을 사용합니다.
두 프로토콜의 공통점은 Checksum을 통해 오류를 검사하기 위한 필드를 가지고 있습니다.
23' 24회 기출문제
다음 중 TCP와 UDP 프로토콜의 헤더 정보에 공통 적으로 존재하는 필드로 가장 적절한 것은?
① 체크섬(Checksum)
② 순서 번호(Sequence number)
③ 긴급 포인터(Urgent pointer)
④ ACK 번호(Acknowledgment number)
전송계층 소켓함수
전송 계층은 네트워크에서 데이터를 전송하는 역할을 담당하며, 이를 위해 소켓이라는 개념을 사용합니다. 소켓은 네트워크 연결의 한 끝을 나타내며, 두 프로그램 간의 통신 채널을 제공합니다. 소켓 함수는 소켓을 생성하고, 연결하며, 데이터를 전송하고, 소켓을 닫는 등의 작업을 수행합니다. 주요 소켓 함수에는 다음과 같은 것들이 있습니다.
- Socket(): 소켓을 생성하는 함수로 소켓 타입과 프로토콜을 지정하여 새로운 소켓을 생성합니다.
- Bind(): 소켓에 주소를 할당하는 함수로 소켓에 IP 주소와 포트 번호를 연결합니다.
- Listen(): 소켓이 연결 요청을 수신할 수 있도록 하는 함수로 소켓을 수동 모드로 설정하여 들어오는 연결 요청을 대기합니다.
- Accept(): 들어오는 연결 요청을 수락하는 함수로 연결 요청이 들어올 때까지 블로킹되며, 연결 요청이 수락되면 새로운 소켓을 반환합니다.
- Connect(): 원격 소켓에 연결을 시도하는 함수로 지정된 주소로 연결을 시도합니다.
- Send(), Recv(): 데이터를 전송하고 수신하는 함수로 소켓을 통해 데이터를 전송하고 수신합니다.
- Close(): 소켓을 닫는 함수로 더 이상 필요하지 않은 소켓을 닫습니다.
이러한 함수들은 네트워크 프로그래밍에서 중요한 역할을 하며, 데이터의 안정적인 전송을 보장합니다
23' 24회 기출문제
다음 설명하는 소켓함수로 가장 적절한 것은?
상대 프로세스가 전송한 데이터를 소켓을 통해서 읽을 수 있으며, 연결성 서비스에 사용한다.
① connect( )
② listen( )
③ recv( )
④ sendto( )
시스템구조 기출문제들에서 빈출 토픽과 관련된 것들을 모조리 뽑아 한번에 볼 수 있도록 추가적으로 작성하겠습니다.
한 과목이 모두 끝나면, 다음 과목으로 넘어가는 방향으로 정리를 하겠습니다.
'IT★자격증 > 정보시스템감리사 기출문제 풀이' 카테고리의 다른 글
정보시스템감리사 빈출 토픽 - 네트워크 주소 (122) | 2023.12.18 |
---|---|
정보시스템감리사 빈출 토픽 - ARP (140) | 2023.12.16 |
정보시스템감리사 기출문제 빈출 토픽 (143) | 2023.12.13 |
정보시스템 감리사 시험정보 (123) | 2023.12.12 |
2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 감리 및 사업관리 기출문제 (21-25) (141) | 2023.12.10 |