728x90
728x90

Computer Science/Network 13

이동통신채널의 물리적 특성에 대해 간단한 정리

열잡음(Thermal Noise)수신장치의 안테나를 포함한 초고주파부의 열잡음이 신호품질 저하를 발생.이 열잡음의 원인은 송수신 장치에서 전자의 운동이 열을 발생하면서 나오는 것으로, 장치의 특성 상 피할 수 없음.열잡음은 모든 주파수 성분에서 균일한 분포를 보이며, 이로 인해 백색 잡음(White Noise)라고도 칭함.이 열잡음만 존재하는 이상적인 채널을 AWGN(Additive White Gaussian Noise)라고 지칭함 경로 손실(Path Loss)송수신기 간 거리차에 의해 송신전력이 감쇠하는 물리적인 현상.송신신호 감쇠는 송신전력과 수신전력의 상대적인 비로 나타낼 수 있음.자유공간에서의 손실은 반송파 파장의 제곱에 비례, 송수신기 간 거리의 제곱에 반비례.무선 신호 전력의 감소가 지수함수적..

1세대 이동 통신부터 5세대(5G) 이동 통신까지 간략한 정리

1세대 미국에서는 AT&T가 셀룰러 개념을 도입한 AMPS(Advanced Mobile Phone System)을 개발, 1세대 이동통신 서비스 시작.4kHz 대역폭의 음성을 20kHz의 채널대역폭을 통해 전송FDMA(Frequency Division Multiple Access) 사용N(Narrow)-AMPS로 발전한국에서는 이 AMPS를 SKT의 전신인 한국이동통신이 이를 도입해서 서비스설계 방식의 한계로, 수용 용량/통화품질 등을 피할 수 없음유럽과 일본은 독자적인 서비스들을 개발해 서비스함 2세대 미국, 한국, 유럽 등이 디지털 음성, SMS를 제공하는 서비스 개발을 시도유럽에서는 GSM(Group Special Mobile)을 개발, 200kHz의 대역폭을 사용하며, 20ms 구간을 할당한 TD..

네트워크 프로그래밍(Network Programming)의 분류

응용 계층(Application Layer) 프로그래밍 응용(작업) 단위 동작을 네트워크 통해 수행하위 계층의 동작을 구체적으로 제어하는 것은 어렵고 효율 저하 발생함.HTML 작성하는 웹 프로그래밍이 이에 해당함.이미 작성된 유틸이나 응용 프로그램을 활용하며, 작성/변경/운영 작업이 용이. 트랜스포트 계층(Transport Layer) 프로그래밍 통신 종단 간 연결 관리 및 패킷 단위 동작 제어.인터넷 프로그램에서 빈번하게 사용되며, OS 별 소켓 API가 유사해 호환성이 좋음. Socket API 예)UNIX BSD socke,t Winsock, TLI(Transport Layer Interface) 디바이스 드라이버 계층(Device Driver Layer) 프로그래밍 링크 계층, 하드웨어를 구동해..

Network] 시그널 종류

시그널발생 조건SIGINT인터럽트키(Ctrl+c)를 입력했을 때 발생SIGKILL강제 종료 시그널, 프로세스에서 이 시그널을 무시하거나 블록 불가SIGIO비동기 입출력이 발생했을 때 전달SIGPIPE파이프 통신에서 수신 프로세스가 종료했을 때, 송신 프로세스가 파이프에 write하면 발생SIGCHLD프로세스가 종료되거나 취소될 때 부모 프로세스에 전달SIGPWR전원의 중단 및 재시작 시, init 프로세스로 전달SIGTSTP사용자가 키보드에서 중지키(Ctrl+z)를 입력했을 때 발생SIGSYS잘못된 시스템 호출 시 발생SIGURG대역 외 데이터를 수신 시 발생SIGHUP터미널과 연결이 끊어졌을 때 세션 리더에게 발송SIGUSR1사용자가 임의의 목적으로 사용 가능SIGUSR2SIGQUIT종료키(Ctrl+/..

Network] 네트워크 주소와 호스트 주소 변환 방법

Endianness 컴퓨터의 메모리에 여러 바이트로 구성된 데이터를 저장하는 방법Byte Order라고도 함컴퓨터의 바이트 순서는 프로세서 아키텍처에 의해 결정, 호스트 바이트 정렬이라고 부름 x86 : little-endian 네트워크 통신 중 이종 컴퓨터 사이의 바이트 정렬 문제를 해결하기 위해 빅 엔디안 방식의 네트워크 바이트 정렬 사용멀티 바이트 데이터 타입에서 중요함 바이트 정렬 함수 Linux / Unix u_short htons(u_short hostshort); // host to network shortu_long htonl(u_long hostlong); // host to network longu_short ntohs(u_short netshort); // network to host..

Network] UDP 주요 함수

bind Function int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);성공 : 0, 실패 : -1 - sockfd : 주소를 할당할 서버 소켓 디스크립터- addr : 서버의 주소 정보를 담은 구조체(IP주소, 포트 번호 등)- addrlen : addr에 저장된 주소 정보 크기(byte) 수신된 패킷의 포트번호와 이를 처리할 프로세스를 지정하기 위해 을 연결서버 주소 정보를 addr을 통해 전달 가능 recvfrom Function ssize_t recvform(int sockfd, void* buf, size_t len, int flags, struct sockaddr* src_addr, socklen_t* addrlen)..

Network] TCP 상태 전이

TCP 상태 전이 연결 단계 : 3-way HandShaking 1. TCP는 종단 host 간의 논리적 접속을 설정하기 위해 3-way HandShaking 사용 Client->Server : TCP SYNClient->Server : TCP ACKServer->Client : TCP SYN ACK SYN : Synchornize Sequence NumbersACK : Acknowledgement 2. TCP 연결 과정을 상태 전이도 측면 #1 : Client는 Sserver에 접속 요청하는 SYN Packet을 보내고, Server의 응답을 기다리는 SYN_SENT 상태로 전이#2 : Server는 SYN 요청을 수신하고 Client에게 요청을 수락하는 ACK와 SYN 플래그가 설정된 Packet을 ..

Network] TCP 소켓 데이터 전송 특징

TCP 헤더(IPv4) 바이트 스트림을 Segment 단위로 나눔Segment : TCP를 이용하여 두 종단 호스트 간에 전달되는 데이터 단위 송신지 포트번호16bit수신지 포트 번호16bit순서번호(Sequence Number)32bit확인 응답 번호(Acknowledgement Number)32bit헤더 길이4bit예약6biturgackpshrstsynfinWindow16bit검사 합16bit긴급 포인터(Urgent Pointer)16bit옵션 & 패딩(Padding) 1. 송/수신지 포트 번호 16bitsegment 전송하는 host에 있는 응용프로그램의 포트 번호를 의미 2. 순서 번호(SEQ) 32bitsegment에 포함된 데이터의 첫 번째 바이트에 부여된 32비트 부호 없는 번호를 의미수신지..

Network] TCP 기반 클라이언트 프로그램 주요 함수

connect Function 서버와 통신을 위한 연결(세션)을 생성연결할 서버의 주소 정보를 설정해야 함 int connect(int sockfd, const struct sockaddr* addr, socklen_t addrlen);return 0(success), -1(fail) - sockfd : 서버에 연결 요청하기 위한 클라이언트 소켓 디스크립터- addr : 연결할 서버의 주소 정보가 설정된 구조체- addrlen : addr의 크기 read Function 전송된 메세지를 수신하기 위해 사용LINUX에서는 소켓이나 파일을 동일한 타입의 디스크립터로 정의하므로 데이터 수신할 때 사용 가능 ssize_t read(int fd, void* buf, size_t nbytes);성공 : 읽은 데이터..

728x90