diff --git a/scapy/asn1/ber.py b/scapy/asn1/ber.py
index 16f8381bb3608f12cc33c04579b6acf95c1d676a..da15f9108c536df2e0cb0460be9536b09c2d13d9 100644
--- a/scapy/asn1/ber.py
+++ b/scapy/asn1/ber.py
@@ -368,7 +368,7 @@ class BERcodec_OID(BERcodec_Object):
             l,s = BER_num_dec(s)
             lst.append(l)
         if (len(lst) > 0):
-            lst.insert(0,lst[0]/40)
+            lst.insert(0,lst[0]//40)
             lst[1] %= 40
         return cls.asn1_object(".".join(str(k) for k in lst)), t
 
diff --git a/scapy/fields.py b/scapy/fields.py
index 937b101d949744e87ae1e98cdf8e53d639de5f39..28fc4baa5a4cf663550c96294d8b3b8c523a6d2a 100644
--- a/scapy/fields.py
+++ b/scapy/fields.py
@@ -535,7 +535,7 @@ class NetBIOSNameField(StrFixedLenField):
     def __init__(self, name, default, length=31):
         StrFixedLenField.__init__(self, name, default, length)
     def i2m(self, pkt, x):
-        l = self.length_from(pkt)/2
+        l = self.length_from(pkt)//2
         if x is None:
             x = ""
         x += " "*(l)
@@ -763,7 +763,7 @@ class BitField(Field):
         else:
             bn = 0
         # we don't want to process all the string
-        nb_bytes = (self.size+bn-1)/8 + 1
+        nb_bytes = (self.size+bn-1)//8 + 1
         w = s[:nb_bytes]
 
         # split the substring byte by byte
@@ -783,7 +783,7 @@ class BitField(Field):
             b = self.reverse(b)
 
         bn += self.size
-        s = s[bn/8:]
+        s = s[bn//8:]
         bn = bn%8
         b = self.m2i(pkt, b)
         if bn:
@@ -1279,7 +1279,7 @@ class _IPPrefixFieldBase(Field):
 
     def _numbytes(self, pfxlen):
         wbits= self.wordbytes * 8
-        return ((pfxlen + (wbits - 1)) / wbits) * self.wordbytes
+        return ((pfxlen + (wbits - 1)) // wbits) * self.wordbytes
 
     def h2i(self, pkt, x):
         # "fc00:1::1/64" -> ("fc00:1::1", 64)
diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py
index e38a0990db288f52d90f3cbfd7d4e601b71d8513..0d22ebf8734cd82abd6a94e57524f6e999ff4400 100644
--- a/scapy/layers/inet.py
+++ b/scapy/layers/inet.py
@@ -144,7 +144,7 @@ class IPOption_RR(IPOption):
                                    length_from=lambda pkt:pkt.length-3)
                     ]
     def get_current_router(self):
-        return self.routers[self.pointer/4-1]
+        return self.routers[self.pointer//4-1]
 
 class IPOption_LSRR(IPOption_RR):
     name = "IP Option Loose Source and Record Route"
@@ -275,7 +275,7 @@ class TCPOptionsField(StrField):
             if onum in TCPOptions[0]:
                 oname, ofmt = TCPOptions[0][onum]
                 if onum == 5: #SAck
-                    ofmt += "%iI" % (len(oval)/4)
+                    ofmt += "%iI" % (len(oval)//4)
                 if ofmt and struct.calcsize(ofmt) == len(oval):
                     oval = struct.unpack(ofmt, oval)
                     if len(oval) == 1:
@@ -379,7 +379,7 @@ class IP(Packet, IPTools):
         ihl = self.ihl
         p += b"\0"*((-len(p))%4) # pad IP options if needed
         if ihl is None:
-            ihl = len(p)/4
+            ihl = len(p)//4
             p = chr(((self.version&0xf)<<4) | ihl&0x0f)+p[1:]
         if self.len is None:
             l = len(p)+len(pay)
@@ -450,7 +450,7 @@ class IP(Packet, IPTools):
                  
     def fragment(self, fragsize=1480):
         """Fragment IP datagrams"""
-        fragsize = (fragsize+7)/8*8
+        fragsize = (fragsize+7)//8*8
         lst = []
         fnb = 0
         fl = self
@@ -460,7 +460,7 @@ class IP(Packet, IPTools):
         
         for p in fl:
             s = str(p[fnb].payload)
-            nb = (len(s)+fragsize-1)/fragsize
+            nb = (len(s)+fragsize-1)//fragsize
             for i in range(nb):            
                 q = p.copy()
                 del(q[fnb].payload)
@@ -468,7 +468,7 @@ class IP(Packet, IPTools):
                 del(q[fnb].len)
                 if i != nb - 1:
                     q[fnb].flags |= 1
-                q[fnb].frag += i * fragsize / 8
+                q[fnb].frag += i * fragsize // 8
                 r = conf.raw_layer(load=s[i*fragsize:(i+1)*fragsize])
                 r.overload_fields = p[fnb].payload.overload_fields.copy()
                 q.add_payload(r)
@@ -490,7 +490,7 @@ def in4_chksum(proto, u, p):
     if u.len is not None:
         if u.ihl is None:
             olen = sum(len(x) for x in u.options)
-            ihl = 5 + olen / 4 + (1 if olen % 4 else 0)
+            ihl = 5 + olen // 4 + (1 if olen % 4 else 0)
         else:
             ihl = u.ihl
         ln = u.len - 4 * ihl
@@ -520,7 +520,7 @@ class TCP(Packet):
         p += pay
         dataofs = self.dataofs
         if dataofs is None:
-            dataofs = 5+((len(self.get_field("options").i2m(self,self.options))+3)/4)
+            dataofs = 5+((len(self.get_field("options").i2m(self,self.options))+3)//4)
             p = p[:12]+chr((dataofs << 4) | ord(p[12])&0x0f)+p[13:]
         if self.chksum is None:
             if isinstance(self.underlayer, IP):
@@ -828,11 +828,11 @@ conf.neighbor.register_l3(Dot3, IP, inet_register_l3)
 @conf.commands.register
 def fragment(pkt, fragsize=1480):
     """Fragment a big IP datagram"""
-    fragsize = (fragsize+7)/8*8
+    fragsize = (fragsize+7)//8*8
     lst = []
     for p in pkt:
         s = str(p[IP].payload)
-        nb = (len(s)+fragsize-1)/fragsize
+        nb = (len(s)+fragsize-1)//fragsize
         for i in range(nb):            
             q = p.copy()
             del(q[IP].payload)
@@ -840,7 +840,7 @@ def fragment(pkt, fragsize=1480):
             del(q[IP].len)
             if i != nb - 1:
                 q[IP].flags |= 1
-            q[IP].frag += i * fragsize / 8
+            q[IP].frag += i * fragsize // 8
             r = conf.raw_layer(load=s[i*fragsize:(i+1)*fragsize])
             r.overload_fields = p[IP].payload.overload_fields.copy()
             q.add_payload(r)
diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py
index e7e73cc48aff8a724a0a9593cbe8d1ed304b8a8c..25d5f1e8ecdf50f4b420801d4a52f3a0a0df8f12 100644
--- a/scapy/layers/inet6.py
+++ b/scapy/layers/inet6.py
@@ -791,7 +791,7 @@ class RouterAlert(Packet): # RFC 2711 - IPv6 Hop-By-Hop Option
     #        iana.org/assignments/ipv6-routeralert-values/ipv6-routeralert-values.xhtml
     def alignment_delta(self, curpos): # alignment requirement : 2n+0
         x = 2 ; y = 0
-        delta = x*((curpos - y + x - 1)/x) + y - curpos
+        delta = x*((curpos - y + x - 1)//x) + y - curpos
         return delta
 
 class Jumbo(Packet): # IPv6 Hop-By-Hop Option
@@ -801,7 +801,7 @@ class Jumbo(Packet): # IPv6 Hop-By-Hop Option
                    IntField("jumboplen", None) ]
     def alignment_delta(self, curpos): # alignment requirement : 4n+2
         x = 4 ; y = 2
-        delta = x*((curpos - y + x - 1)/x) + y - curpos
+        delta = x*((curpos - y + x - 1)//x) + y - curpos
         return delta
 
 class HAO(Packet): # IPv6 Destination Options Header Option
@@ -811,7 +811,7 @@ class HAO(Packet): # IPv6 Destination Options Header Option
                    IP6Field("hoa", "::") ]
     def alignment_delta(self, curpos): # alignment requirement : 8n+6
         x = 8 ; y = 6
-        delta = x*((curpos - y + x - 1)/x) + y - curpos
+        delta = x*((curpos - y + x - 1)//x) + y - curpos
         return delta
 
 _hbhoptcls = { 0x00: Pad1,
@@ -927,7 +927,7 @@ class IPv6ExtHdrHopByHop(_IPv6ExtHdr):
     name = "IPv6 Extension Header - Hop-by-Hop Options Header"
     fields_desc = [ ByteEnumField("nh", 59, ipv6nh),
                     FieldLenField("len", None, length_of="options", fmt="B",
-                                  adjust = lambda pkt,x: (x+2+7)/8 - 1),
+                                  adjust = lambda pkt,x: (x+2+7)//8 - 1),
                     _PhantomAutoPadField("autopad", 1), # autopad activated by default
                     _HopByHopOptionsField("options", [], HBHOptUnknown, 2,
                                           length_from = lambda pkt: (8*(pkt.len+1))-2) ]
@@ -940,7 +940,7 @@ class IPv6ExtHdrDestOpt(_IPv6ExtHdr):
     name = "IPv6 Extension Header - Destination Options Header"
     fields_desc = [ ByteEnumField("nh", 59, ipv6nh),
                     FieldLenField("len", None, length_of="options", fmt="B",
-                                  adjust = lambda pkt,x: (x+2+7)/8 - 1),
+                                  adjust = lambda pkt,x: (x+2+7)//8 - 1),
                     _PhantomAutoPadField("autopad", 1), # autopad activated by default
                     _HopByHopOptionsField("options", [], HBHOptUnknown, 2,
                                           length_from = lambda pkt: (8*(pkt.len+1))-2) ]
@@ -1056,7 +1056,7 @@ class IPv6ExtHdrSegmentRouting(_IPv6ExtHdr):
                 tlv = IPv6ExtHdrSegmentRoutingTLVPadding(padding=tmp_pad)
                 pkt += str(tlv)
 
-            tmp_len = (len(pkt) - 8) / 8
+            tmp_len = (len(pkt) - 8) // 8
             pkt = pkt[:1] + struct.pack("B", tmp_len)+ pkt[2:]
 
         if self.segleft is None:
@@ -1210,7 +1210,7 @@ def fragment6(pkt, fragSize):
             tmp = remain[:innerFragSize]
             remain = remain[innerFragSize:]
             fragHeader.offset = fragOffset    # update offset
-            fragOffset += (innerFragSize / 8)  # compute new one
+            fragOffset += (innerFragSize // 8)  # compute new one
             if IPv6 in unfragPart:
                 unfragPart[IPv6].plen = None
             tempo = unfragPart/fragHeader/conf.raw_layer(load=tmp)
@@ -1722,7 +1722,7 @@ class ICMPv6NDOptRedirectedHdr(_ICMPv6NDGuessPayload, Packet):
     name = "ICMPv6 Neighbor Discovery Option - Redirected Header"
     fields_desc = [ ByteField("type",4),
                     FieldLenField("len", None, length_of="pkt", fmt="B",
-                                  adjust = lambda pkt,x:(x+8)/8),
+                                  adjust = lambda pkt,x:(x+8)//8),
                     StrFixedLenField("res", b"\x00"*6, 6),
                     TruncPktLenField("pkt", "", IPv6, 8,
                                      length_from = lambda pkt: 8*pkt.len-8) ]
@@ -1855,7 +1855,7 @@ class ICMPv6NDOptRouteInfo(_ICMPv6NDGuessPayload, Packet): # RFC 4191
     name = "ICMPv6 Neighbor Discovery Option - Route Information Option"
     fields_desc = [ ByteField("type",24),
                     FieldLenField("len", None, length_of="prefix", fmt="B",
-                                  adjust = lambda pkt,x: x/8 + 1),
+                                  adjust = lambda pkt,x: x//8 + 1),
                     ByteField("plen", None),
                     BitField("res1",0,3),
                     BitField("prf",0,2),
@@ -1934,7 +1934,7 @@ class ICMPv6NDOptDNSSL(_ICMPv6NDGuessPayload, Packet): # RFC 6106
     name = "ICMPv6 Neighbor Discovery Option - DNS Search List Option"
     fields_desc = [ ByteField("type", 31),
                     FieldLenField("len", None, length_of="searchlist", fmt="B",
-                                  adjust=lambda pkt, x: 1+ x/8),
+                                  adjust=lambda pkt, x: 1+ x//8),
                     ShortField("res", None),
                     IntField("lifetime", 0xffffffff),
                     DomainNameListField("searchlist", [],
@@ -2615,7 +2615,7 @@ class _MIP6OptAlign:
       x = self.x ; y = self.y
       if x == 0 and y ==0:
           return 0
-      delta = x*((curpos - y + x - 1)/x) + y - curpos
+      delta = x*((curpos - y + x - 1)//x) + y - curpos
       return delta
 
 
@@ -2842,7 +2842,7 @@ class _MobilityHeader(Packet):
         p += pay
         l = self.len
         if self.len is None:
-            l = (len(p)-8)/8
+            l = (len(p)-8)//8
         p = p[0] + struct.pack("B", l) + p[2:]
         if self.cksum is None:
             cksum = in6_chksum(135, self.underlayer, p)
diff --git a/scapy/layers/tls/crypto/pkcs1.py b/scapy/layers/tls/crypto/pkcs1.py
index baa8b7964e67f4ca37395d71646ccb31e6c864ae..bdaab2fd634b98b98e9af52c990f34ea1d8291e0 100644
--- a/scapy/layers/tls/crypto/pkcs1.py
+++ b/scapy/layers/tls/crypto/pkcs1.py
@@ -161,7 +161,7 @@ class _EncryptAndVerifyRSA(object):
             return False
 
     def _legacy_verify_md5_sha1(self, M, S):
-        k = self._modulusLen / 8
+        k = self._modulusLen // 8
         if len(S) != k:
             warning("invalid signature (len(S) != k)")
             return False
@@ -203,7 +203,7 @@ class _DecryptAndSignRSA(object):
             return self._legacy_sign_md5_sha1(M)
 
     def _legacy_sign_md5_sha1(self, M):
-        k = self._modulusLen / 8
+        k = self._modulusLen // 8
         EM = _legacy_pkcs1_v1_5_encode_md5_sha1(M, k)
         if EM is None:
             warning("Key._rsassa_pkcs1_v1_5_sign(): unable to encode")
diff --git a/scapy/utils6.py b/scapy/utils6.py
index 8439e40d9dfe9295e6df5a014b785bbe29423656..b6c6a72edcab3872a5c4f0cd650f2c04b1c1cf48 100644
--- a/scapy/utils6.py
+++ b/scapy/utils6.py
@@ -429,7 +429,7 @@ def in6_ctop(addr):
     res = []
     for j in range(4):
         res.append(struct.pack("!I", i%2**32))
-        i = i/(2**32)
+        i = i//(2**32)
     res.reverse()
     return inet_ntop(socket.AF_INET6, "".join(res))
 
@@ -451,7 +451,7 @@ def in6_ptoc(addr):
     res = []
     while rem:
         res.append(_rfc1924map[rem%85])
-        rem = rem/85
+        rem = rem//85
     res.reverse()
     return "".join(res)
 
diff --git a/scapy/volatile.py b/scapy/volatile.py
index 6a37f260fab59d258194765302672425f95854e2..8c91759ca2cd487860d9740c76673d15143d1459 100644
--- a/scapy/volatile.py
+++ b/scapy/volatile.py
@@ -37,7 +37,7 @@ class RandomEnumeration:
             n += 1
         self.n =n
 
-        self.fs = min(3,(n+1)/2)
+        self.fs = min(3,(n+1)//2)
         self.fsmask = 2**self.fs-1
         self.rounds = max(self.n,3)
         self.turns = 0