본문 바로가기
반응형

전체 글73

OSI 7 계층 전송계층 프로토콜 전송계층 프로토콜 OSI 7 계층을 봤다면 전송계층을 알 것이다. 전송계층 프로토콜은 여기 나와있는 것 말고도 더 있으나 나머지는 전송계층이라 하기 좀 거리가 멀거나 거의 사용하지 않는 것들이다. 전송계층은 수신측까지 전송 기능을 담당하는 계층이다. 이 계층은 오류 검사 기능이 있으며 오류가 발생하면 재전송을 요청할 수 있다. 전송계층은 TCP와 UDP를 중심으로 사용하고 있다. 오류 복구, 흐름 제어, 신뢰성 있는 연결을 담당한다. 현재 가장 많이 쓰이는 것은 TCP와 UDP이며 그중에서도 TCP가 가장 많이 쓰인다. 전송계층 헤더에는 포트 주소, 소켓, 순서 번호 등이 있다. 전송계층에서 헤더와 데이터를 포함한 단위를 세그먼트 또는 데이터 그램이라 부른다. 전송계층의 기능 전송계층은 연결제어, 데이터.. 2021. 5. 1.
[C 소켓프로그래밍] TCP 소켓 동작원리 Tcp의 내용 설명 codedatasotrage.tistory.com/18 TCP 상태 전이도 서버측과 클라이언트 측 관점으로 나눈 TCP 상태 전이도이다. TCP의 신뢰성 보장을 위한 기능중 하나이다. 소켓의 종료는 누가 먼저 종료 요청을 보내느냐의 따라 달라지며 먼저 자신이 닫았을 경우 ACK 패킷을 송신함을 끝으로 TIME_OUT 상태에서 대기하다 소켓이 종료된다. 이 종료 시간은 커널에서 설정이 가능하다. 소켓 동작 원리 연결 과정 1. SYN 패킷 전송 단계 TCP 헤더의 SYN 비트를 1로 설정하여 패킷을 송신한다. 처음 SYN 패킷은 ISN(Init Seq Num)를 SYN 필드에 기록하여 전송한다. 보안상의 이유로 ISN을 임의의 숫자를 사용하나 0도 자주 사용한다. 2. SYN, ACK .. 2021. 4. 3.
네트워크 오류 검출 방법과 종류 네트워크 오류 네트워크에서 송수신하면서 외부의 간섭이나 처리적인 문제로 송수신 도중 값이 바뀌는 오류가 발생할 수 있다. 그에 대한 방법으로 속도를 낮추거나 신호를 강하게 보낼 수도 있다. 아무리 최선의 방법을 쓰더라도 어떻게든 오류는 발생할 수 있다. 그렇기 때문에 오류가 발생하였는지 발생하지 않았는지 검사하는 체계가 필요하다. 네트워크 오류의 종류 오류로는 3가지로 나눌 수 있다. 단일 비트 오류 다중 비트 오류 집단 비트 오류 단일 비트의 경우 하나의 비트만 오류가 있는 경우이고 다중비트는 둘 이상의 오류가 발생할 경우, 집단 비트 오류의 경우 데이터 구간 중 2개 이상의 비연속적인 오류가 있는 경우이다. 오류 검사의 종류 오류검사의 종류로는 패리티 비트, 블록 검사합, CRC(순환 중복검사, Cy.. 2021. 3. 30.
[Network/Protocol] IP 인터넷 프로토콜 네트워크 계층 ip는 OSI 7계층중 네트워크 계층의 프로토콜이다. 네트워크와 네트워크를 잇기 위해 라우터를 거쳐야 하고 그곳이 어딘지 어떻게 가야 하는지를 알기 위해 ip주소를 사용한다. LAN 환경에서는 굳이 ip주소가 아니더라도 MAC 주소를 이용하여 통신이 가능하지만 그 이상은 네트워크 주소가 필요하다. 그래서 사용하는 것이 ip 주소이다. 이 계층은 경로를 찾고 최적의 경로를 선택하는 기능을 가진다. 네트워크와 네트워크 사이 패킷이 오가는 것을 담당하는 계층이다. 더불어 스위칭 기능도 있다.(L3 스위치) 이 계층의 대표적인 프로토콜로 IP, ICMP, IGMP, ARP가 있다.IP 현재 IP 프로토콜은 IPv4와 IPv6가 있다. 현재 주로 IPv4를 사용한다. IPv4 IP 주소는 0~255.. 2021. 3. 22.
C++ 오버라이딩 overriding 오버라이딩 #include using namespace std; class Parent{ public: void Parentmethod(){ cout 2021. 3. 21.
C++ 오버로딩과 연산자 오버로딩 오버로딩 C에서 C++ 넘어오면서 생긴 기능중 하나이다. 함수를 같은 이름응로 비슷한 기능임에도 불구하고 C언어에서는 이름을 다르게 해야한다. C언어에서는 동일한 이름의 함수가 정의되어 있으면 컴파일러가 오류를 발생시킨다. //error_overload.c #include void func(int n); void func(int n,int e); int main() { func(1); func(2,3); return 0; } void func(int n){ printf("%d\n",n); } void func(int n,int e){ printf("%d %d\n",n,e); } 위 사진처럼 C언어는 에러를 발생시킨다. C++은 함수 호출 시 전달되는 인자를 통해서 함수를 구분하기 때문에 인수 형태가 다르.. 2021. 3. 20.
반응형